osm-search / Nominatim

Open Source search based on OpenStreetMap data
https://nominatim.org
GNU General Public License v3.0
3.21k stars 716 forks source link

return entrance point for large places like airports #536

Open MichalPP opened 8 years ago

MichalPP commented 8 years ago

on osrm-talk there is a discussion https://www.mail-archive.com/osrm-talk@openstreetmap.org/msg01223.html summary: in a scenario when finding a route to airport/zoo, nominatim returns (?) centroid of the big feature. snapping the centroid to the nearest road network sometimes returns very wrong route (ending nowhere near the entry).

I guess this is a tagging issue, nominatim should know the "normal entry point" from somewhere. Common cases are big features (airport, zoo, train stations) or even houses/addresses (centroid can be closer to some service road at the back, where there is no door).

is there any existing tagging to solve this? Like putting entrance=main on the polygon of the address so that nominatim takes entrance instead of centroid.

lonvia commented 8 years ago

Nominatim doesn't take any entrance information into account at the moment.

Tagging-wise entrance=main could probably work as long as the feature has a main entrance. There are buildings with multiple entrances of equal importance but those should be tagged in a more specific way anyways (address directly on entrance etc.) It also won't work for POI nodes inside a building.

The other question is what the API should return. We might replace the centroid with the entrance point or add the entrance as additional point. The former is tempting from an implementation point of view. The latter is probably more user-friendly.

It certainly would be an interesting feature to add but I'm sorry to say that it is probably a feature that will only happen if somebody else contributes it.

MichalPP commented 8 years ago

thinking more about this, we would need several entrances (car, foot, bicycle,...). so entrance(s) as separate points. configuration like (returning the matching node with highest number of tags on it): if (building=*) then (entrance=main); if(aeroway=aerodrome) then (aeroway=terminal); if(barrier=fence) then (barrier=gate); could deal with various tagging dialects/tags. though some are a node on way, some are way in relation (maybe there is a tagging scheme for relations).

jakob commented 2 years ago

Hi! I have no idea how Nominatim works under the hood, but how hard would it be to have Nominatim return the coordinates of the main entrance (if available) instead of the centroid?

I know that this won't solve every problem (especially if there are multiple entrances or different entrances for pedestrians / cyclists / etc), but it would help a lot with the most common cases. Most train stations have one main entrance, private homes and appartement buildings have one main entrance, zoos and other attractions typically have one entrance, etc.

Currently, when using the routing on openstreetmap.org, the final bit is very often wrong, because the centroid is closer to a different road than the main entrance.

Would returning the coordinates of the main entrance instead of the centroid break a lot of things that use Nominatim?