Skip to content
nvkelso edited this page Mar 30, 2012 · 42 revisions

This is the one hard part about going open source geo.

Web services:

Open source tools:

  • pySHPgeocode - This Python package reverse geocodes data points to shapefile regions. It is developed primarily for assigning administrative region codes to a set of geo coordinates (in standard latitude/longitude). All you need is a shapefile of the regions you want to geocode to.
  • OSM Nominatim - Used in OpenStreetMap, tied to OSM data.
  • OSM Imposm.geocoder - Optimized for German addresses.
  • MapQuest's version of Nominatim - Warning, assumes USA addresses.
  • GeoCommons GeoCoder - an open-source Geocoder using open data mostly just for the US using Census geography files
  • Gisgraphy - an open-source Geocoder using open data

###Not a batch geocoder, but useful:

###What's in a location?###

Location Types:

  • Street Address: - An address consists of a street number, a street name, and a quadrant (NE, NW, SE, SW). The address number and street name are required.

    Example: 441 4th ST NW

    Input, gazetter: in a point XY, matches free text to points, polys, or street segment lines with addy ranges.

    Result: New point location. The NAME normalized version of the address, including City, State, [Country], and ZIP+[4]. Optional: aggregated form placed back onto the POLYs/POINTS/etc used for matching.

  • Intersection: - An Intersection consists of two streets.

    Example: 14th ST NW and Pennsylvania Avenue NW, or 14th ST NW & Pennsylvania Avenue NW, or 16th ST NW over Military RD NW, or Military RD NW under 16th ST NW

    Input, gazetter: a point XY, matches free text to points, polys.

    Result: New point location. The NAME normalized version of the intersection. Optional: aggregated form placed back onto the POLYs used for matching.

  • Block: - A block consists of a street and any other cross streets.

    Example: 4th ST NW from D Street NW to E Street NW or 400 Block of 4th St NW

    Input, gazetter: a point XY or line segment, matches free text to points, polys, or street segment lines with addy ranges.

    Result: New point location at mid zooms, new lines at high zooms, now with NAME normalized form and uniqueID added to their attributes. Optional: aggregated form placed back onto the POLYs/LINES/PTS used for matching.

  • Place, POI Names: - A place name consists of common place names (neighborhoods etc.) and public/institutional building names.

    Example: "White House" or "Dupont Circle" or "Wilson Building" or "Wilson High School" or "Woodrow Wilson House"

    Input, gazetter: a point XY or polygon, matches free text to points, polys.

    Result: New points, now with NAME normalized form and uniqueID added to their attributes. Optional: aggregated form placed back onto the POLYs/PTS used for matching.

  • Cities: - Both incorporated and unincorporated. Usually disambiguated with as a city-state pair, also a country context.

    Example: "Washington, DC" with context being USA.

    Input, gazetter: a point XY or polygon, matches free text to points, polys.

    Result: New points or same points that went in, now with NAME normalized form and uniqueID added to their attributes. Optional: aggregated form placed back onto the POLYs used for matching.

  • Zipcodes: - Used for postal routing. Often point in polygon tests result in the name of the polygon being added to the point attribute columns.

    Example: "95501" with context being USA.

    Input, gazetter: a point XY or polygon, matches free text to points, polys.

    Result: New points or same points that went in, now with ZIP normalized form added to their attributes. Optional: aggregated form placed back onto the POLYs used for matching.

  • States, counties, countries: - Other administrative units.

    Example: "Humboldt County, California" with context being USA. Example: "California" with context being USA. Example: "United States" with context being Planet Earth.

    Input, gazetter: a point XY or polygon, matches free text to points, polys.

    Result: New points or same points that went in, now with NAME normalized form added to their attributes. Optional: aggregated form placed back onto the POLYs used for matching.

Tile Previews

Image source: DC MAR

Clone this wiki locally