node package manager

node-geocoder-ca Module

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


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 API. See API docs for parameters.


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.lon);


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.


var Geocoder = require('node-geocoder-ca').Geocoder,
    geocoder = new Geocoder(),
    address = '525 Market St, Philadelphia, PA 19106';
    .on('result', function(coords) { /* ... */ })
    .on('error', function(err) { /* ... */ });


  • Basic geocoding
  • Suggestions on failed geocoding
  • Reverse geocoding
  • Tests for event-based usage