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.
npm install googlemaps Google Places API - NOT COMPLETED
- Static maps
- Street view - TO BE IMPROVED
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.
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:
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.
vargmAPI=newGoogleMapsAPI();varparams={location: '51.507868,-0.087689',size: '1200x1600',heading: 108.4,pitch: 7,fov: 40};varresult=gmAPI.streetView(params);Please refer to the code, tests and the Google Maps API docs for further usage information.
Criticism/Suggestions/Patches/PullRequests are welcome.
Contributions and new issues are welcome!