User:Minh Nguyen/Navigating between entrances

From OpenStreetMap Wiki
Jump to navigation Jump to search

This is a proposal for how search engines, routing engines, and navigation applications could interpret established OpenStreetMap tagging to improve the user experience navigating from and to entrances within large sites that have multiple entrances. It does not propose a novel tagging scheme.

Problem

A typical navigation application coordinates a search engine and a routing engine. Once the user selects a point of interest, the application calculates a route between the current location and the destination. The routing engine receives the two locations as point features, usually representing the centroid of a building, and snaps either coordinate pair to the nearest point on the road network. (Depending on the routing engine, private roads near the origin and destination may or may not be considered during the snapping process.)

With this naïve approach, the snapped origin and destination may not be optimal for finding a building's entrance:

  • If a rectangular building is surrounded on all sides by streets, the snapped coordinate is essentially a tossup.
  • A house may have a generous setback from the street and a street may pass closer to the back door, even if the house is inaccessible from the backstreet.

One workaround is to map the POI as a point and shift it toward the nearest entrance to bias the snapping. However, different use cases may call for different entrances, and the user's intent may not be obvious to the application:

  • A customer may want to park in front of a supermarket, but a delivery person might want to take a back road to get to the loading dock.
  • An airport's international terminal may be a significant distance from its domestic terminal, to say nothing of its economy parking lot or employee entrance.

While consumer-drivers may be able to resolve an imprecise route on their own, for door-to-door delivery use cases, even small distances between destinations may add up significantly.

Solution

Sophisticated navigation applications, such as Apple Maps and Google Maps, solve this problem by presenting the user with a menu of specific entrances before navigating to a large destination or defaulting to the most appropriate entrance for a given user profile. The OpenStreetMap-powered Mapbox Navigation SDK doesn't feature this menu. However, it is designed to work with the Mapbox Geocoding API, which includes "routable points": for search results from OpenAddresses.io, the routable point is biased toward the street whose name matches the street address. (Here calls this functionality "access points", while TomTom calls it "entry points".)

In OpenStreetMap, established tags already make it possible to enter the data necessary for a menu or defaults similar to the behavior in Google Maps. However, data consumers still need some heuristics to associate the entrances with the parent points of interest. For example:

  • Suppose the user selects this search result. Nominatim identifies relation 131562 as the POI, so it would be pretty simple for a data consumer to run this query to get the main building entrance.
  • Suppose the Nominatim result is a landuse area rather than a building, which would tend to be the case for school campuses and airports. This search result identifies way 34229193 as a landuse area, and this query gets all the main entrances to the buildings within that area.
  • Suppose the user selects this stadium. The stadium's off-site parking lots are part of the site relation relation 14507813. The data consumer can query for the site relation's parking lots to offer to the user as destinations.

An application could perform further heuristics based on the tags on these entrances or the areas that intersect with them. These examples use Overpass queries for demonstration purposes, but it would be more efficient for a search engine to index the entrances as subfeatures of POIs using spatial queries.

Destinations by POI

This list includes the kinds of destinations that might be presented to the user when selecting a POI. Destinations that an application would route to by default are listed in bold. The list excludes destinations within the POIs that the user would search for by name, or indoor features that would use a common building entrance, or fixtures that a user would easily find on foot after reaching a destination by other means. An important criteria for inclusion is that the destination can be labeled unambiguously in as few words as possible.

Labeling destinations

In general, destinations should only be listed if they're named, but some features aren't tagged with a name because the name would be redundant to other tags. In these cases, the application could fall back to a short description of the destination (e.g., "Main Entrance"). In cases where a POI has multiple destinations of the same kind, such as a parking garage with multiple entrances, the application could label each one with the name of a nearby street ("Elm Street Entrance").

External links