file-geocoder
v0.3.6
Published
Geocodes a file (JSON or CSV). Requires a Google-style geocoder.
Downloads
5
Readme
file-geocoder
Geocodes a file (JSON or CSV). Requires a Google-style geocoder.
For example:
Given a CSV,
address, city, state, zip
135 Morrisey Blvd, Boston, MA, 02125
1150 15th Street NW, Washington, DC, 20071
242 West 41st Street, New York, NY, 10036
file-geocoder adds several geocoding fields (what's the deal with GeocodeAdminAreaLevel1?):
address, city, state, zip, GeocodeLat, GeocodeLng, GeocodeStatus, GeocodeLocality, GeocodeAdminAreaLevel1, GeocodeCountry, GeocodeAddress
135 Morrisey Blvd, Boston, MA, 02125, 42.293929, -71.047218, ROOFTOP, Boston, MA, United States, "135 Morrisey Blvd, Boston, MA, 02125"
1150 15th Street NW, Washington, DC, 20071, 38.904711, -77.034647, ROOFTOP, Washington, DC, United States, "1150 15th Street NW, Washington, DC, 20071"
242 West 41st Street, New York, NY, 10036, 40.755819, -73.988402, ROOFTOP, New York, NY, United States, "242 West 41st Street, New York, NY, 10036"
Usage examples
Geocode a JSON file, hit http://localhost:8080 (how to setup a local geocoder):
file-geocoder \
-f myaddresses.json \
-a address,city,state,zip # list of fields containing the address, in order
Geocode a CSV file, hit Google, throttle geocoding requests to 1 per second (read up on their usage limits):
file-geocoder \
-f myaddresses.csv \
-a address,city,state,zip \ # list of fields containing the address, in order
-h maps.googleapis.com \ # geocoding host
-p 80 \ # geocoding port
-s 1 # time (in seconds) to throttle the geocoding requests
Your laptop battery died before the geocoder finished. No problem. file-geocoder stores its work on a .db file. Let's resume the geocoding:
file-geocoder \
-d myaddresses.db \ # database
-a address,city,state,zip # list of fields containing the address, in order
Progress bar!
Install
npm install file-geocoder -g
Notes
file-geocoder imports the JSON/CSV file to a NeDB datastore before geocoding. For performance reasons, NeDB keeps a copy of the whole database in memory. In other words, file-geocoder is a memory hog. If the JSON file is 1GB, you better have at least that much RAM.