Introduction
In collaboration with Treasurer/Tax Collector and the Department of Public Health, we have written a restful street address geocoding service. This page describes that service. We try to follow the OGC geocoding standard which is described here. The service uses EAS addresses. While EAS addresses are bound to the street network, the results will differ significantly from a street network geocoding service. For example, if you try to geocode "100 Main St" using this service, you will get zero candidates. That's because (at the time of this writing) there is no "100 Main St" in EAS. Although there is a street segment that supports "100 Main St" there is no building or proposed building that has that address. Why use EAS geocoding? If you want units or parcels that are associated with an address, this is probably your best bet. EAS addresses are curated and maintained (not mined) and we synchronize the streets and parcels with Dept. of Public Works on a daily basis. To see what EAS address look like, check out the web interface which is here (internal).
User Contacts
Contact | Department |
---|---|
Richard Hagner | Treasurer/Tax Collector |
Darrell Ascano | Treasurer/Tax Collector |
Stephanie Cowles | Dept. of Public Health |
Aksel Olsen | Dept. of Planning |
The Request
Here is the URL (DEV) with an example address of "100 Main St":
http://10.250.60.189/geocode/findAddressCandidates/?f=json&Address=115%20Main%20St&Zip=94105
The the URL is case sensitive.
The Response
We currently support JSON. Here is an example.
{ "spatialReference": { "wkid": 4326 }, "candidates": [ { "address": "115 MAIN ST", "location": { "y": 37.79152826999239, "x": -122.39400753158013 }, "score": 100, "attributes": { "base_address_num": 115, "base_address_suffix": null, "street_name": "MAIN", "street_type": "ST", "zipcode": "94105", "parcels": [ { "address_base_flg": true, "blk_lot": "3717012", "unit_num": null }, { "address_base_flg": true, "blk_lot": "3717013", "unit_num": null } ], "units": [] } } ] }
Results and Performance
We are still waiting for results and comments from Stephanie - thanks Stephanie!
The service will geocode about 1000 addresses per minute.
Source Code and Dependences
The server code is here and here.
The tests are over here.
And here is a working command line client and a sample data file.
You'll need python 2.7 or better and you'll need to install the simplejson library.
If you are running this alongside an ESRI product that uses a different version of python, you'll need to take some special steps - we hope to include note on how to do that later.
Example URLs and Response
Here is a simple query for 115 Main St.
A query for "1200 18th" will result in 2 candidates.
Your query does not have to include the zip code.
A query for 2655 Hyde returns lots of parcels.
A query for 1000 Pine returns lots of units.
Add Comment