organicmaps / organicmaps

🍃 Organic Maps is a free Android & iOS offline maps app for travelers, tourists, hikers, and cyclists. It uses crowd-sourced OpenStreetMap data and is developed with love by MapsWithMe (MapsMe) founders and our community. No ads, no tracking, no data collection, no crapware. Please donate to support the development!
https://organicmaps.app
Apache License 2.0
9.65k stars 924 forks source link

Place nodes missing if there is nearby place node with identical name #7824

Open Timmy-Tesseract opened 5 months ago

Timmy-Tesseract commented 5 months ago

Describe the issue OM appears to filter out certain place nodes during map generation if there is a nearby place node with identical name. Affected place nodes will not be rendered and will not show up in search results. This happens despite place nodes having a number of attributes clearly marking them as distinct entities, in some cases even if value of place tag is different.

Example 1 2x place=village distance between place nodes 2.1 km located in different admin_level=6 entities https://www.openstreetmap.org/node/6917101102 (exists in OM) https://www.openstreetmap.org/node/6910742180 (missing in OM)

Bagumbayan

Example 2 place=village and place=hamlet distance between place nodes 848 m located in different admin_level=4 entities https://www.openstreetmap.org/node/5249604308 (exists in OM) https://www.openstreetmap.org/node/6787296079 (missing in OM)

Tibungol

Example 3 2x place village distance between place nodes 2.4 km located in different admin_level=3 entities https://www.openstreetmap.org/node/4462800161 (exists in OM) https://www.openstreetmap.org/node/8791290763 (missing in OM)

Awao

Limits to reproducibility

biodranik commented 5 months ago

@Timmy-Tesseract what does it mean physically, two different villages with the same name?

Timmy-Tesseract commented 5 months ago

Yes there are two distinct settlements both with their own government offices, schools, health facilities, etc.

Historical background is usually that a sparsely populated area was already named before administrative boundaries were delineated. Then once territorry was divided by a municipal boundary both municipalities established their own village using the already existing name.

pastk commented 5 months ago

FYI @vng

vng commented 5 months ago

Yes, we do filter similar neighbor OSM places because of often mapping duplicates (Node, Way, Relation, and sometimes several of them) that logically define one place.

What can we do here? Probably enhance the similarity heuristic or add exceptions somehow ..

See generator/place_processor.cpp, the logic is very heuristic there :)

biodranik commented 5 months ago

@vng is it possible to generate a dump of all such close, filtered features from our generator, to manually take a look on them, and maybe add exceptions based on their ids?

muralito commented 5 months ago

Example 3 2x place village distance between place nodes 2.4 km located in different admin_level=3 entities https://www.openstreetmap.org/node/4462800161 (exists in OM) https://www.openstreetmap.org/node/8791290763 (missing in OM)

This two nodes has different value in tag is_in:municipality. This data could be used to feed the heuristic, and also to display it in the text list result, so the user can differentiate between them.