Nachos Preventing Motivation
    Wondering what’s next for npm?Check out our public roadmap! »

    google-distance

    1.0.1 • Public • Published

    Google Distance Matrix API for Node.js

    Build Status

    Easily get traveling distance and duration data between locations with the Google Distance Matrix API

    Installation

    npm install google-distance
    

    Usage

    var distance = require('google-distance');
     
    distance.get(
      {
        origin: 'San Francisco, CA',
        destination: 'San Diego, CA'
      },
      function(err, data) {
        if (err) return console.log(err);
        console.log(data);
    });

    The above example outputs the following data object:

    {
      index: null,
      distance: '807 km',
      distanceValue: 807366,
      duration: '7 hours 30 mins',
      durationValue: 26981,
      origin: 'San Francisco, CA, USA',
      destination: 'San Diego, CA, USA',
      mode: 'driving',
      units: 'metric',
      language: 'en',
      avoid: null,
      sensor: false
    }

    Batch Mode

    This example will return an array of data objects corresponding to all origin/destination pairs.

    distance.get(
    {
      origins: ['San Francisco, CA','San Diego, CA'],
      destinations: ['San Diego, CA','Seattle, WA']
    },
    function(err, data) {
      if (err) return console.log(err);
      console.log(data);
    });

    Result:

    Origin Destination
    San Francisco, CA San Diego, CA
    San Francisco, CA Seattle, WA
    San Diego, CA San Diego, CA
    San Diego, CA Seattle, WA

    Additional Parameters

    Here is a full list of options you can include to tailor your query:

    • origin, destination - name (eg. 'San Francisco, CA') | latitude/longitude (eg. '51.510652,-0.095444')
    • index - null (default) | specify an index for identification
    • mode - 'driving' (default) | 'walking' | 'bicycling'
    • units - 'metric' (default) kilometers/meters | 'imperial' miles/feet
    • language - 'en' (default) | more languages
    • avoid - null (default) | 'highways' | 'tolls'
    • sensor - false (default) | true | determines if GPS is used to find user location

    Note: The units setting only affects the text displayed within distance fields.

    distanceValue is always in meters, and durationValue is always in seconds.

    More Examples

    This example specifies mode and units:

    distance.get(
      {
        origin: 'San Francisco, CA',
        destination: 'Los Angeles, CA',
        mode: 'bicycling',
        units: 'imperial'
      },
      function(err, data) {
        if (err) return console.log(err);
        console.log(data);
    });

    Outputs:

    {
      index: null,
      distance: '499 mi',
      distanceValue: 802534,
      duration: '1 day 21 hours',
      durationValue: 161896,
      origin: 'San Francisco, CA, USA',
      destination: 'Los Angeles, CA, USA',
      mode: 'bicycling',
      units: 'imperial',
      language: 'en',
      avoid: null,
      sensor: false
    }

    Let's use latitude and longitude for our origin/destination and an index:

    distance.get(
    {
      index: 1,
      origin: '37.772886,-122.423771',
      destination: '37.871601,-122.269104'
    },
    function(err, data) {
      if (err) return console.log(err);
      console.log(data);
    });

    Outputs:

    {
      index: 1,
      distance: '21.9 km',
      distanceValue: 21946,
      duration: '21 mins',
      durationValue: 1251,
      origin: 'Octavia Boulevard, San Francisco, CA 94102, USA',
      destination: '2066-2070 University Avenue, Berkeley, CA 94704, USA',
      mode: 'driving',
      units: 'metric',
      language: 'en',
      avoid: null,
      sensor: false
    }

    API Keys

    Using an API key is not required, but recommended since you can track your usage and make sure you don't exceed Google's quota. You can request a key by following these steps.

    Specify an API key for use like this:

    var distance = require('google-distance');
    distance.apiKey = 'API_KEY';

    Business users can omit the API key and instead specify their business client and signature keys:

    var distance = require('google-distance');
    distance.businessClientKey = 'CLIENT_KEY';
    distance.businessSignatureKey = 'SIGNATURE_KEY';

    Running Tests

    1. Install the development dependencies:

      npm install

    2. Run the tests:

      npm test

    Install

    npm i google-distance

    DownloadsWeekly Downloads

    1,598

    Version

    1.0.1

    License

    MIT

    Last publish

    Collaborators

    • avatar