hpsweb-bingmaps-distance
v1.0.1
Published
A simple node.js wrapper for Bingmaps's Distance API
Downloads
5
Maintainers
Readme
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
Install the development dependencies:
npm install
Run the tests:
npm test