| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Node library for geocoding and reverse geocoding. Can be used as a nodejs library
npm install node-geocoder
var geocoderProvider = 'google';
var httpAdapter = 'http';
// optional
var extra = {
apiKey: 'YOUR_API_KEY', // for Mapquest, OpenCage, Google Premier
formatter: null // 'gpx', 'string', ...
};
var geocoder = require('node-geocoder')(geocoderProvider, httpAdapter, extra);
// Using callback
geocoder.geocode('29 champs elysée paris', function(err, res) {
console.log(res);
});
// Or using Promise
geocoder.geocode('29 champs elysée paris')
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.log(err);
});
// output :
[{
latitude: 48.8698679,
longitude: 2.3072976,
country: 'France',
countryCode: 'FR',
city: 'Paris',
zipcode: '75008',
streetName: 'Champs-Élysées',
streetNumber: '29',
administrativeLevels:
{ level1long: 'Île-de-France',
level1short: 'IDF',
level2long: 'Paris',
level2short: '75' }
}]geocoder.geocode({address: '29 champs elysée', country: 'France', zipcode: '75008'}, function(err, res) {
console.log(res);
});
// OpenCage advanced usage example
geocoder.geocode({address: '29 champs elysée', countryCode: 'fr', minConfidence: 0.5, limit: 5}, function(err, res) {
console.log(res);
});
// Reverse example
// Using callback
geocoder.reverse({lat:45.767, lon:4.833}, function(err, res) {
console.log(res);
});
// Or using Promise
geocoder.reverse({lat:45.767, lon:4.833})
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.log(err);
});
// Batch geocode
geocoder.batchGeocode(['13 rue sainte catherine', 'another adress'], function (results) {
// Return an array of type {error: false, value: []}
console.log(results) ;
});
// Set specific http request headers:
var HttpsAdapter = require('node-geocoder/lib/httpadapter/httpsadapter.js')
var httpAdapter = new HttpsAdapter(null,
{
headers: {
'user-agent': 'My application <email@domain.com>',
'X-Specific-Header': 'Specific value'
}
})
var geocoder = require('node-geocoder')(geocoderProvider, httpAdapter, extra);
...You can specify request timeout using paramater extra.timeout
node-geocoder-cli You can use node-geocoder-cli to geocode in shell
You can add new geocoders by implementing the two methods geocode and reverse:
var geocoder = {
geocode: function(value, callback) { ... },
reverse: function(query, callback) { var lat = query.lat; var lon = query.lon; ... }
}You can also add formatter implementing the following interface
var formatter = {
format: function(data) { return formattedData; },
}You can improve this project by adding new geocoders or http adapters.
To run tests just npm test.
To check code style install jshint and just run jshint lib test.
| Back | FazBrowse Home | New Git URL |