Skip to content

moshen/node-googlemaps

Repository files navigation

Build Status

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

varpublicConfig={key: '<YOUR-KEY>',stagger_time: 1000,// for elevationPathencode_polylines: false,secure: true,// use httpsproxy: 'http://127.0.0.1:9999'// optional, set a proxy for HTTP requests};vargmAPI=newGoogleMapsAPI(publicConfig);// or in case you are using Google Maps for WorkvarenterpriseConfig={google_client_id: '<YOUR-CLIENT-ID>',// to use Google Maps for Workgoogle_private_key: '<YOUR-PRIVATE-KEY>',// to use Google Maps for Workgoogle_channel: '<YOUR-CHANNEL>'// to use Google Maps for Work application usage trackingstagger_time: 1000,// for elevationPathencode_polylines: false,secure: true,// use httpsproxy: 'http://127.0.0.1:9999'// optional, set a proxy for HTTP requests};vargmAPI=newGoogleMapsAPI(enterpriseConfig);// geocode APIvargeocodeParams={"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);});// reverse geocode APIvarreverseGeocodeParams={"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

vargmAPI=newGoogleMapsAPI();varparams={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);// return static map URLgmAPI.staticMap(params,function(err,binaryImage){// fetch asynchronously the binary image});

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:

Some Map

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 @2xhttp-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/[email protected]', scale: 2 } 

Credits to this answer on SO.

Street view

vargmAPI=newGoogleMapsAPI();varparams={location: '51.507868,-0.087689',size: '1200x1600',heading: 108.4,pitch: 7,fov: 40};varresult=gmAPI.streetView(params);

London - Tower Bridge from London Bridge

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

evnmduncanmsugendranJoshSmithgrobotregalityspatical

v1.0.0 maintener

moshenfabriziomoscon

Contributions and new issues are welcome!

About

A simple way to query the Google Maps API from Node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published