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

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
locateproperty containing one of the above - a single
postalpropery containing a zip or postal code - the following four properties:
addresst,stno,city, andprov
- a single
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
resultevent happens whenever geocoding succeeds. It passes aCoordsobject to any listeners. - A
errorevent happens whenever there is an error. It passes theErrorobject 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
- Basic geocoding
- Suggestions on failed geocoding
- Reverse geocoding
- Tests for event-based usage