Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 55 Next »

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
ContactDepartment
Richard HagnerTreasurer/Tax Collector

Darrell Ascano

Treasurer/Tax Collector
Stephanie CowlesDept. of Public Health
Aksel OlsenDept. of Planning
Example URLs

The URL is case sensitive.

Here is a simple query for 115 Main St.

query for "1200 18th" will result in 2 candidates.

Your query does not have to include the zip code.

query for 2655 Hyde returns lots of parcels.

query for 1000 Pine returns lots of units.

Example Response

We currently support JSON; see just below for an example. The basic structure follows the OGC eocoding standard which ESRI helped specify. As you can infer from the sample below, EAS provides unit level and parcel level information. We currently exclude included only unretired entitities (base address, unit address, parcel). To see what's available, either contact us or take a look the data model.

{
    "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

Using this example file from Dept. of Public Health, we saw a rate of about 1000 addresses per minute with barely any load on the servers. The results on this same dataset are summarized in this table.

scorepercent
880.02
900.10
946.28
962.89
9890.29
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.

 

  • No labels