node-geocoder-ca

Node.js module to interface with the Geocoder.ca API

npm install node-geocoder-ca
11 downloads in the last week
26 downloads in the last month

Geocoder.ca Module

Node.js module to interface with the Geocoder.ca API. Build Status

Usage

Accepts a location argument and a callback. callback receives two params: err and coords. In the case of an error, err will contain an Error object. Otherwise, coords will be populated with a Coords object, with lat and lon properties.

location can be one of the following:

  • a String with location (eg. "525 Market St, Philadelphia, PA 19106")
  • a String with a zip/postal code (eg. "19106" or "M4A 2L7")
  • a Number with a 5-digit zip code (eg. 19106)
  • an Object containing one of the following:
    • a single locate property containing one of the above
    • a single postal propery containing a zip or postal code
    • the following four properties: addresst, stno, city, and prov

If location is an object, it is converted to a query string and passed directly to the Geocoder.ca API. See API docs for parameters.

Example

var Geocoder = require('node-geocoder-ca').Geocoder,
    geocoder = new Geocoder(),
    address = '525 Market St, Philadelphia, PA 19106';

geocoder.geocode(address, function(err, coords) {
    if (err) {
        throw err;
    }

    console.log("%s geocoded to [%d, %d]", address, coords.lat, coords.lon);
});

Events

The Geocoder object is an event emitter. It emits the following events:

  • A result event happens whenever geocoding succeeds. It passes a Coords object to any listeners.
  • A error event happens whenever there is an error. It passes the Error object to any listeners.

You can choose to skip the callback on the geocode() method and listen for events instead.

Warning: this usage is currently untested.

Example:

var Geocoder = require('node-geocoder-ca').Geocoder,
    geocoder = new Geocoder(),
    address = '525 Market St, Philadelphia, PA 19106';

geocoder.geocode(address)
    .on('result', function(coords) { /* ... */ })
    .on('error', function(err) { /* ... */ });

Todo

  • [x] Basic geocoding
  • [ ] Suggestions on failed geocoding
  • [ ] Reverse geocoding
  • [ ] Tests for event-based usage
npm loves you