Your SlideShare is downloading. ×
0
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Oscon 2010
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Oscon 2010

588

Published on

An Enterprise Street Addressing System Using Open Source

An Enterprise Street Addressing System Using Open Source

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
588
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • About the 80%: An example of such a use: The city is licensing a medical marijuana dispensary at 100 main St. We want to notify the neighbors that are within 300 feet of that addresses parcel boundary. We tried to avoid including tempting things like general purpose geocoder, for example, to answer questions like “where is fishermans wharf?”. About the silos: There are at least a dozen address databases in the city – we’d like to put a dent in this number. Problems with silos: - lots of ETLs to maintain - stale data - inconsistent validations (perfectly appropriate for some use cases)
  • Json works naturally in python and javascript … you serialize an object graph to get create json … you deserialize the json to create the object graph … it ’ s a simple and compelling combination. If you ’ re a developer you should already be familiar with the model-view-controller. Django separates concerns using something I think is best called model-view-template. Note that there are 2 models, really 3. This violates a number of principals. It increase maintenance and complexity. But it ’ s what allows a client to be rich. Debates about these trade offs are common. PostGIS is a spatial extension for postgresql.
  • Search 445 Ashbury – orientation 445 Ashbury - 1 door on the street and 10 units – probably apartments 3513052 - complement to the previous - one parcel or owner – and many addresses 45 Fremont St – 33 stories, mailing room on 2 nd floor, clients visit the other floors 1000 Pine St – some time shares – one flat or unit with multiple owners 4712008 – single parcel with 240 addresses and a mutlipolygon Change Request Address Review
  • We separated the map data because we want to provide mapping and geospatial services to applications other than the address system.
  • Transcript

    • 1. An Enterprise Street Addressing System Using Open Source
      • Paul E. McCullough
      • City and County of San Francisco
        • gmail: p.e.mccullough
        • slides:
        • repo: http://esams.googlecode.com/svn/
    • 2. Enterprise Addressing System
      • mundane
      • insert, update, delete (retire)
      • useful
    • 3.
      • satisfy 80% of street address use cases
      • be the “system of record”
      • reduce the silo count
      We built it to...
    • 4. We thought it should be...
      • geospatial
      • web centric
      • based on open source
    • 5. Agenda
      • architecture
      • web client demonstration
      • extract - transform - load
      • messaging
    • 6. Architecture/Deploy Virtualized Linux on Applogic Javascript Ext JS OpenLayers model view controller Web Client Httpd Python Django GeoDjango Web Server model view template map_db app_db RDBMS PostgreSQL/PostGIS json ajax Java Tomcat Geoserver Map Server maps map cache
    • 7. Web Client Demonstration
      • search
      • change request
      • address review
    • 8. Extract - Transform - Load ETL app_db map_db Public Works parcels streets Assessor ownership Enterprise GIS transform
    • 9. Extract - Transform - Load
      • Feature Manipulation Engine
      • Python scripts
      • dev, qa, prod
      • two-phase commit
      • ssh
      • map cache reseed
    • 10. Messaging Web Services Address System Web Server look up change notification Client System Web Server
    • 11. Review
      • architecture
      • web client
      • extract - transform - load
      • messaging
    • 12. Questions gmail: p.e.mccullough slides: todo – url repo: todo - url
    • 13. Credits
      • City and County of San Francisco
          • Department of Technology
          • Department of Building Inspection
          • Assessors Office
          • Department of Public Works
      • Farallon Geographics
      • Open Source Projects
          • Ext JS / OpenLayers
          • Mozilla / Firefox / Firebug
          • EveryBlock
          • Python / Django / GeoDjango
          • GeoServer
          • PostgreSQL / PostGIS
          • Linux
    • 14. the following slides are supplemental
    • 15. Data Model
    • 16. Feature: Simple, Adequate Data Model
        • parcel to address (many to many)
          • apartments
          • timeshares
          • multi-story
          • condos
          • tenants in common
        • mailing address
        • status (official, provisional ...)
    • 17. Feature: Address Lineage 150 change request Main Street 150 152 154 156
    • 18. Feature: Address Point Table street based geo-coding falls short Add Constraint: point must be within a polygon Main Street 198 100 101 199
    • 19.  
    • 20.  
    • 21.  
    • 22.  
    • 23.  
    • 24.  
    • 25.  
    • 26.  

    ×