hpsweb-bingmaps-distance

1.0.1 • Public • Published

Bing Distance API for Node.js

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

Installation

npm install hpsweb-bingmaps-distance

Usage

var distance = require("hpsweb-bingmaps-distance");

distance
  .get({
    origin: "San Francisco, CA",
    destination: "San Diego, CA",
  })
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.log(err);
  });

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"],
  })
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.log(err);
  });

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 - 'km' (default) Kilometer(km)/Mile(mi) | 'imperial' miles/feet
  • avoid - null (default) | 'highways' | 'tolls' | 'ferry' | 'minimizeHighways' | 'minimizeTolls' | 'borderCrossing'
  • optimize - time (default) | distance | timeWithTraffic | timeAvoidClosure | Specifies what parameters to use to optimize the route.

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",
  })
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.log(err);
  });

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",
  })
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.log(err);
  });

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

You can request a key by following these steps.

Specify an API key for use like this:

var distance = require("hpsweb-bingmaps-distance");
distance.apiKey = "API_KEY";

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

var distance = require("hpsweb-bingmaps-distance");
distance.businessClientKey = "CLIENT_KEY";
distance.businessSignatureKey = "SIGNATURE_KEY";

Running Tests

  1. Install the development dependencies:

    npm install

  2. Run the tests:

    npm test

Package Sidebar

Install

npm i hpsweb-bingmaps-distance

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

16 kB

Total Files

7

Last publish

Collaborators

  • herbethps