loopback-datatype-geopoint

    1.0.0 • Public • Published

    loopback-datatype-geopoint

    Overview

    The Geopoint object is a LoopBack data type that represents a physical location.

    loopback-datasource-juggler and strong-remoting modules use this object to facilitate use of GeoPoint data type in a LoopBack model properties & remote methods.

    Create a new GeoPoint object:

    For example, to create a GeoPoint object in LoopBack:

    var loopback = require(‘loopback’);
    var here = new loopback.GeoPoint({lat: 10.32424, lng: 5.84978});

    The constructor requires two values:

    • lat: Latitude point in degrees. Range: -90 to 90.
    • lng: Longitude point in degrees. Range: -180 to 180

    Call the constructor with any of the following arguments:

    • Two numbers, for example new GeoPoint(10.32, 5.84)
    • Number string of form "lat, lng", for example new GeoPoint('10.32, 5.84')
    • Array with two number elements: [lat, lng], for example new GeoPoint([10.32, 5.84])
    • Object with two number properties: lat and lng, for example new GeoPoint({ lat: 10.32, lng: 5.84})

    Using GeoPoint type

    • in a LoopBack Model:

    Declare a GeoPoint property in the model JSON file, for example:

    ...
    "properties"{
        "location": {
          "type": "GeoPoint"
        },
      ...
    }
    ...

    or programtically:

    var CoffeeShop = loopback.createModel('coffee-shop', {
      location: 'GeoPoint'
    });
    • in remote methods:

      'accepts' & 'returns' argument types, for remote method, can be set to GeoPoint type, for example, in a remote method getNearbyLocation for model MyModel:

      common/models/my-model.js

       MyModel.remoteMethod('getNearbyLocation', {
              accepts: {arg: 'loc', type: 'GeoPoint'},
              returns: {arg: 'location', type: 'GeoPoint'}
        });

    Static Method:

    • distanceBetween(pointA, pointB, options):

      Determine the spherical distance between two GeoPoints

      Arguments:

      Name Type Description
      pointA GeoPoint Point A
      pointB GeoPoint Point B
      options Object Options object with one key, 'type'. See below.

      Options:

      Name Type Description
      type String Unit of measurement, one of:
      miles (default)
      radians
      kilometers
      meters
      miles
      feet
      degrees

    Instance Methods:

    • geoPoint.distanceTo(point, options):

      Determine the spherical distance to the given point.

      For example:

      var loopback = require(‘loopback’);
       
      var here = new loopback.GeoPoint({lat: 10, lng: 10});
      var there = new loopback.GeoPoint({lat: 5, lng: 5});
       
      console.log(here.distanceTo(there, {type: 'miles'})); // result: 438

      Arguments:

      Name Type Description
      point GeoPoint GeoPoint object to which to measure distance.
      options Object Options object with one key, 'type'. Same as options in distanceBetween()
    • geoPoint.toString(): Simple serialization of geoPoint.

    Install

    npm i loopback-datatype-geopoint

    DownloadsWeekly Downloads

    26,048

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • thegman