Google Maps API for Node.js
This library implements the following Google Maps APIs, and can be also used by Google Maps for Work users.
This library is NOT COMPATIBLE with tags < 1.0.0
If you want to migrate from a version older than 1.0.0
check the WIKI for instructions.
Installation
npm install googlemaps
What does it cover
Maps API Web Services:
Google Places API - NOT COMPLETED
Google Maps Image API
Usage
var publicConfig = {
key: '<YOUR-KEY>',
stagger_time: 1000,
encode_polylines: false,
secure: true,
proxy: 'http://127.0.0.1:9999'
};
var gmAPI = new GoogleMapsAPI(publicConfig);
var enterpriseConfig = {
google_client_id: '<YOUR-CLIENT-ID>',
google_private_key: '<YOUR-PRIVATE-KEY>',
google_channel: '<YOUR-CHANNEL>'
stagger_time: 1000,
encode_polylines: false,
secure: true,
proxy: 'http://127.0.0.1:9999'
};
var gmAPI = new GoogleMapsAPI(enterpriseConfig);
var geocodeParams = {
"address": "121, Curtain Road, EC2A 3AD, London UK",
"components": "components=country:GB",
"bounds": "55,-1|54,1",
"language": "en",
"region": "uk"
};
gmAPI.geocode(geocodeParams, function(err, result){
console.log(result);
});
var reverseGeocodeParams = {
"latlng": "51.1245,-0.0523",
"result_type": "postal_code",
"language": "en",
"location_type": "APPROXIMATE"
};
gmAPI.reverseGeocode(reverseGeocodeParams, function(err, result){
console.log(result);
});
Check out the unit tests for more APIs examples.
Static Maps
var gmAPI = new GoogleMapsAPI();
var params = {
center: '444 W Main St Lock Haven PA',
zoom: 15,
size: '500x400',
maptype: 'roadmap',
markers: [
{
location: '300 W Main St Lock Haven, PA',
label : 'A',
color : 'green',
shadow : true
},
{
location: '444 W Main St Lock Haven, PA',
icon: 'http://chart.apis.google.com/chart?chst=d_map_pin_icon&chld=cafe%7C996600'
}
],
style: [
{
feature: 'road',
element: 'all',
rules: {
hue: '0x00ff00'
}
}
],
path: [
{
color: '0x0000ff',
weight: '5',
points: [
'41.139817,-77.454439',
'41.138621,-77.451596'
]
}
]
};
gmAPI.staticMap(params);
gmAPI.staticMap(params, function(err, binaryImage) {
});
This example prints the URL for the Static Map image: "https://maps.googleapis.com/maps/api/staticmap?center=444%20W%20Main%20St%20Lock%20Haven%20PA&zoom=15&size=500x400&maptype=roadmap&markers=color%3Agreen%7Clabel%3AA%7Cshadow%3Atrue%7C300%20W%20Main%20St%20Lock%20Haven%2C%20PA&markers=icon%3Ahttp%3A%2F%2Fchart.apis.google.com%2Fchart%3Fchst%3Dd_map_pin_icon%26chld%3Dcafe%257C996600%7C444%20W%20Main%20St%20Lock%20Haven%2C%20PA&path=weight%3A5%7Ccolor%3A0x0000ff%7Cenc%3A%7BbbzFfyvwMnFwP&style=feature%3Aroad%7Celement%3Aall%7Chue%3A0x00ff00"
By giving gm.staticMap an optional callback, you can retreive the static map PNG data:
You will get a map like:
For custom markers using the icon
parameter, a little-known scale
parameter is also available that makes it possible to use high-resolution custom images on devices with retina displays. Set it to 2 and use it together with a @2x
http-only image URL (Google's API does not support custom marker images served over https), such as:
{
location: '999 Example Road, Earth',
icon: 'http://example.com/path/to/custom-marker@2x.png',
scale: 2
}
Credits to this answer on SO.
Street view
var gmAPI = new GoogleMapsAPI();
var params = {
location: '51.507868,-0.087689',
size: '1200x1600',
heading: 108.4,
pitch: 7,
fov: 40
};
var result = gmAPI.streetView(params);
Further examples
Please refer to the code, tests and the Google Maps API docs for further usage information.
Contributions
Criticism/Suggestions/Patches/PullRequests are welcome.
Original contributors list
v1.0.0 maintener
Contributions and new issues are welcome!