Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SoTM US Routing


Published on

Presentation to State of the Map US, focusing on routing using OSM data.

Published in: Technology
  • Be the first to comment

SoTM US Routing

  1. 1. MapQuest Routing using OSM Data David Nesbitt MapQuest, Inc.
  2. 2. <ul><li>Part of AOL Local </li></ul><ul><li>Along with Patch and City’s Best </li></ul><ul><li>First popular dynamic web application </li></ul><ul><li>#2 in Online Mapping in the U.S. </li></ul><ul><li>50 million unique visitors per month </li></ul><ul><li>Lack of investment in recent years </li></ul><ul><ul><li>But that is changing! </li></ul></ul><ul><li>Recently launched major redesign at </li></ul><ul><li> </li></ul>
  3. 3. Mapquest and OSM <ul><li>MapQuest UK launched at SOTM in Girona </li></ul><ul><li>UK site first: </li></ul><ul><li>Will launch Germany and France shortly </li></ul><ul><li>MapQuest France is next </li></ul><ul><li>New technology stack (for MapQuest) </li></ul><ul><li>Mapnik, TileCache, Nominatim, OSM data </li></ul><ul><li>Routing still uses proprietary engine </li></ul><ul><li>Established $1MM internal fund for OpenStreetMap investment </li></ul><ul><li>Focus: improve data within the United States </li></ul><ul><li>Use resources from MapQuest and Patch to engage audiences to contribute </li></ul><ul><li>Paying developers to contribute to open source projects </li></ul><ul><li>Contact us at [email_address] with questions or comments </li></ul>
  4. 5. MapQuest Routing using OSM Data <ul><li>1) We have ingested OSM data into our routing engine </li></ul><ul><li>Deploying sites in Europe with OSM routing </li></ul><ul><li>Localization work as we move to different countries/languages </li></ul><ul><li> Route narrative phrases, web page </li></ul><ul><li>2) Offer free routing services to developers </li></ul><ul><li>http:// /directions / </li></ul><ul><li>3) Identify routing issues and develop tools to allow them to be fixed </li></ul><ul><li>Working with members of the OSM community </li></ul><ul><li>4) Work towards using OSM data within US </li></ul><ul><li>Plan to offer an site in the future </li></ul><ul><li>US data needs improvements to geocoding and for navigability </li></ul><ul><li> MapQuest known for accurate directions </li></ul><ul><li> We have a large, engaged user base across multiple local properties in the US </li></ul>
  5. 6. MapQuest Routing Engine <ul><li>High performance and scalability (20K+ routes / minute across 12 hosts) </li></ul><ul><ul><li>A* heuristics, road filtering based on network level, efficient link marking and adjacency list structure </li></ul></ul><ul><ul><li>Data layout optimized to improve memory / disk cache performance </li></ul></ul><ul><li>Route Services </li></ul><ul><li>Additional routing services (developer services) supported </li></ul><ul><li>Mobile turn-by-turn navigation support </li></ul><ul><li> </li></ul><ul><li>Route Quality </li></ul><ul><ul><li>Directional link-based algorithm for calculating routes - simplifies issues with turn restrictions </li></ul></ul><ul><ul><li>Turn/Intersection costing based on turn geometry and road classes at intersection </li></ul></ul><ul><ul><ul><li>“ Maneuver” penalties to help generate routes with less turns </li></ul></ul></ul><ul><ul><li>Link density - slightly favor rural areas vs. urban areas </li></ul></ul><ul><li>Driving Directions Data Format </li></ul><ul><ul><li>Format is designed to provide high performance for driving routes </li></ul></ul><ul><ul><ul><li>Data layout is optimized to improve cache performance </li></ul></ul></ul><ul><li>Route Narrative Improvements </li></ul><ul><ul><li>Tailored route narratives create concise, simple directions </li></ul></ul><ul><ul><li>New enhanced narrative features like intersection counts, prior maneuvers, and gone-too-far guidance </li></ul></ul>
  6. 7. MapQuest Route Services <ul><li> - based on OSM data </li></ul><ul><li>Multiple input/output formats </li></ul><ul><li> JSON, XML, key-value pairs </li></ul><ul><li> </li></ul><ul><li>Current developer services based on commercial data </li></ul><ul><li>Route Matrix </li></ul><ul><li>Optimized Routes (TSP) </li></ul><ul><li>Path From Route </li></ul><ul><ul><li>Computes time/distance of a set of locations from a specific route </li></ul></ul><ul><ul><ul><li>Trim a set of locations to those that are on or close to a route </li></ul></ul></ul><ul><li>Time dependent routing </li></ul><ul><ul><li>Accounts for time dependent restrictions and real-time/historic speed data </li></ul></ul><ul><li>Draggable Routes </li></ul><ul><ul><li>Interactively drag a portion of the route </li></ul></ul><ul><li>Alternate Routes </li></ul><ul><ul><li>Provide alternate route paths and narrative </li></ul></ul>
  7. 8. Route Matrix <ul><li> </li></ul><ul><li>Calculates drive time matrix (time and distance) </li></ul><ul><ul><li>One-to-many </li></ul></ul><ul><ul><li>Many-to-many </li></ul></ul><ul><ul><li>Many-to-one (shortly) </li></ul></ul><ul><li>Supports wide range of applications </li></ul><ul><ul><li>As input to more robust route optimization (Traveling Salesman) method </li></ul></ul><ul><ul><li>Enhance search results with drive time </li></ul></ul><ul><ul><li>In-Car navigation: location finding aid </li></ul></ul><ul><ul><ul><li>Example: find the nearest gas station / convenience store while driving along an Interstate. </li></ul></ul></ul><ul><ul><li>Analysis applications </li></ul></ul><ul><ul><li>Meet in the middle </li></ul></ul><ul><ul><li>Commuter optimization </li></ul></ul><ul><ul><ul><ul><li>Drive time of bank employees to various “branches </li></ul></ul></ul></ul>
  8. 9. Optimized Routes <ul><li> </li></ul><ul><li>Traveling Salesman Problem (TSP) </li></ul><ul><ul><li>Combinatorial optimization problem </li></ul></ul><ul><ul><li>Brute force approach is not feasible </li></ul></ul><ul><ul><li>Well-designed heuristic algorithms can find “near-optimal” routes </li></ul></ul><ul><ul><ul><li>Simulated annealing approaches, Aarts, et al. (1988) </li></ul></ul></ul><ul><li>MapQuest Optimized Routing </li></ul><ul><ul><li>Calculates drive time matrix (or pedestrian walking time) </li></ul></ul><ul><ul><ul><li>From each location to all others </li></ul></ul></ul><ul><ul><li>Find “near-optimal” route using simulated annealing method </li></ul></ul><ul><ul><li>Reorder “intermediate” locations to match optimal path </li></ul></ul><ul><ul><li>Run a “standard” MapQuest route </li></ul></ul><ul><ul><li>Multi-leg </li></ul></ul><ul><ul><li>Develops itinerary (narrative and route shape) </li></ul></ul>
  9. 10. Route Data Ingestion <ul><li>osm4routing </li></ul><ul><li>OpenStreetMap data parser that creates nodes-edges adapted for routing applications </li></ul><ul><li>Route DB </li></ul><ul><li> PostGRES DB created by osm4route </li></ul><ul><li>osm2ddf </li></ul><ul><li>Reads RouteDB to create MapQuest DDF data (including route network) </li></ul><ul><li>DDFPostProcess </li></ul><ul><li>Validates route network, applies turn costs, optimizes network data structures </li></ul><ul><li>Driving Directions Format (DDF) </li></ul><ul><li>Proprietary data format used by MapQuest routing engine </li></ul>osm4routing OSM XML Route DB osm2ddf DDFPostProcess DDF routing
  10. 11. osm4routing <ul><li>Modified version of code from </li></ul><ul><li>Creates PostGRES Route DB with attributes required by MapQuest routing engine </li></ul><ul><ul><li>Primarily working with the edges table </li></ul></ul><ul><ul><li>DB schema - removed some attributes not required and added some new ones </li></ul></ul><ul><ul><li>Perform some data standardization and normalization </li></ul></ul><ul><li>Creates a relations/restrictions table </li></ul><ul><li>Will look to contribute changes back in the future </li></ul><ul><li>In the process of adding the ability to ingest OSM diff files </li></ul>osm4routing OSM XML Route DB osm2ddf DDFPostProcess DDF routing
  11. 12. osm2ddf <ul><li>Forms route network and optimizes data structure </li></ul><ul><ul><li>Computes link density for urban avoidance </li></ul></ul><ul><ul><li>Converts OSM tags into internal attributes </li></ul></ul><ul><ul><ul><li>Maps highway tags to default speeds and “network level” </li></ul></ul></ul><ul><li>Identifies and skip duplicate edges </li></ul><ul><li>Creates name file and other files used for narrative guidance </li></ul><ul><ul><li>Did some work to “standardize” ref names: e.g., E 45  E45 </li></ul></ul><ul><ul><li>Uses some country specific logic </li></ul></ul><ul><li>Computes compass directions of links (and begin/end of links) </li></ul><ul><ul><li>Allows rapid analysis of turns/intersections during guidance /narrative generation </li></ul></ul>osm4routing OSM XML Route DB osm2ddf DDFPostProcess DDF routing
  12. 13. Next Steps <ul><li>Incremental / automated data update </li></ul><ul><li>Start at weekly route data updates – move to daily </li></ul><ul><li>Plan to build some route data validation tools / quality assurance checks </li></ul><ul><li>Be able to reject and then fix major route issues </li></ul><ul><ul><ul><li>e.g., a broken connection along a major Interstate </li></ul></ul></ul><ul><ul><ul><li>Willing to tolerate errors in local regions but not incorrect edits on major highways </li></ul></ul></ul><ul><li>Develop tools to improve OSM data quality for routing </li></ul><ul><li>Data validation and correction tools </li></ul><ul><li>Working with the OSM community and contracting developers </li></ul><ul><li>Tune routing engine </li></ul><ul><li>Optimize performance and quality when using OSM data </li></ul><ul><li>Pedestrian Routing </li></ul><ul><li>Area landmark enhancements </li></ul><ul><li>Traffic Message Channel </li></ul><ul><li>Investigating ways to associate real time traffic information to OSM data </li></ul>
  13. 14. Pedestrian Routing Enhancements Area features to provide details since walkways and paths are often un-named|lu612007nq%2C20%3Do5-50zah&callback=renderAdvancedNarrative&avoidTimedConditions=false&outFormat=json&routeType=pedestrian&narrativeType=microformat&enhancedNarrative=true&locale=en_BG&unit=m&from=1717%20Champa%20St,Denver,CO&to=100%20W%2014th%20Avenue%20Pkwy,Denver,CO
  14. 15. OSM data improvements for routing <ul><li>TIGER data import quality </li></ul><ul><li>Driveways </li></ul><ul><li>old/abandoned roads </li></ul><ul><li>Duplicate edges / ways </li></ul><ul><li>Incorrect oneways </li></ul><ul><li>Exit information (e.g. motorway exits) </li></ul><ul><li>Lack of consistently applied data standards </li></ul><ul><li>Model after what is recommended for Germany </li></ul><ul><li> Exit number, road name to which the exit connects, the city/town that the exit services </li></ul><ul><li> exit_to? </li></ul><ul><li>Relations / Restrictions </li></ul><ul><li>Often see intermediate roads being improperly ordered / connected </li></ul><ul><li>Time dependent relations – may be more important in US than Europe? </li></ul>
  15. 16. OSM data improvements for routing (cont.) <ul><li>Bad connectivity, disjoint network areas </li></ul><ul><li>Connection to Ferries </li></ul><ul><li>Many are highway = service </li></ul><ul><li> </li></ul><ul><li> Meant for alleyways, driveways, deliveries? </li></ul><ul><li> Disrupts road filtering / performance </li></ul><ul><li>“ Isolated&quot; ways that are drivable but not connected to any drivable links </li></ul><ul><li>e.g., a drivable service road amongst pedestrian ways </li></ul><ul><li> City center search may find this as the closest road, driving routes fail </li></ul><ul><li>Surface tags </li></ul><ul><ul><li>We care about paved vs. unpaved for vehicle access </li></ul></ul><ul><ul><li>Too many free-form tags: e.g., surface = very horrible </li></ul></ul>
  16. 17. Bad Connectivity <ul><li>Interstate connection without a ramp </li></ul>
  17. 18. Incorrect oneway Thanks to Robert Chell @ 1Spatial Reversed !
  18. 19. Nice map! Route? <ul><li> </li></ul><ul><li>Ferry near Calgary </li></ul>16 edges!
  19. 20. Questions? David Nesbitt [email_address] 717-581-4874