Socket
Socket
Sign inDemoInstall

google-distance

Package Overview
Dependencies
29
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

google-distance

A simple node.js wrapper for Google's Distance Matrix API


Version published
Maintainers
1
Weekly downloads
1,451
decreased by-16.94%

Weekly downloads

Readme

Source

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:

OriginDestination
San Francisco, CASan Diego, CA
San Francisco, CASeattle, WA
San Diego, CASan Diego, CA
San Diego, CASeattle, 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

Keywords

FAQs

Last updated on 01 Mar 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc