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.53k stars 914 forks source link

Search doesn't find https://www.openstreetmap.org/node/2834916536 when searching for "8, zadov, czech" #9069

Open IOOI-SqAR opened 3 weeks ago

IOOI-SqAR commented 3 weeks ago

Describe the issue Search doesn't find https://www.openstreetmap.org/node/2834916536 when searching for "8, zadov, czech"

Steps to reproduce

  1. Go to Search
  2. Enter "8, zadov, czech"
  3. Location is not found

Expected behaviour I expected Organic Maps to find that location. Google Maps does.

Screenshots If applicable, add screenshots or screen recordings to help explain your problem.

System information:

Additional context This was the location for our AirBnB stay a week ago. We couldn't find it until we downloaded Google Maps

biodranik commented 3 weeks ago

The OSM wiki says that:

No object should have addr:place= and addr:street= at the same time.

So it looks like a tagging error. @map-per @organicmaps/translations-cs can someone from OSM Czech community check it?

map-per commented 2 weeks ago

Yes, no object should have both. Moreover the addr:street "Zadov" appears to be the name of the closest village and not a street name.

@IOOI-SqAR: Do you know what's the correct postal address / what would you write on a letter to that place?

IOOI-SqAR commented 2 weeks ago

Yes, no object should have both. Moreover the addr:street "Zadov" appears to be the name of the closest village and not a street name.

@IOOI-SqAR: Do you know what's the correct postal address / what would you write on a letter to that place?

"Zadov" is the name of a close village (see https://www.openstreetmap.org/node/282446154 ) and the street name (see https://www.openstreetmap.org/way/504842392 and https://www.openstreetmap.org/way/297961154 ) as well. While the object we're talking about is not really close to that street, its street address is still "Zadov". But it doesn't belong to that village, but to "Stachy": https://www.openstreetmap.org/relation/438039 .

The address of that building would be: city: Stachy, street: Zadov, house number: 8

So I guess "place" is not right here and should be "city". (Although it is located outside Stachy as village).

Fun fact: the postboxes for houses in that area are all neatly placed at a pole on the road "Zadov", at the eastern end of https://www.openstreetmap.org/way/39114032

Kind regards!

IOOI-SqAR commented 2 weeks ago

The house in Google Maps: https://www.google.com/maps/place/Zadov+8,+384+73+Stachy,+Czechia/

IOOI-SqAR commented 2 weeks ago

Other buildings in that area also seem to have the same wrong tagging, for instance https://www.openstreetmap.org/node/2834914071 Maybe it is a bigger problem with that import: https://www.openstreetmap.org/changeset/22116682

map-per commented 2 weeks ago

Thank you, I edited https://www.openstreetmap.org/node/2834916536 and used addr:city=Stachy.

But by now I'm not sure any more what to do here, using both addr:place and addr:street is done so often in Czechia that this might also be a regional exception.

What confuses me is that each house number appears only once in the whole addr:place=Stachy area. So the addr:street is totally superfluous / redundant.

IOOI-SqAR commented 2 weeks ago

Hi @map-per , I think there is an issue with the whole https://www.openstreetmap.org/changeset/22116682 import. I opened a discussion there but later found out that the import was done by a bot. I am afraid that nobody reads it. What would be the proper way to bring this issue to attention for the czech OSM community? Do you have any ideas?

Thanks in advance,

Lars

IOOI-SqAR commented 2 weeks ago

See also: https://wiki.openstreetmap.org/wiki/Talk:Address_import_from_RUIAN

pedro042 commented 2 weeks ago

Hi guys, I"m owner of CzechAddress bot which runs continuous import of address places in Czech. We know Nominatim ignores addr:place if addr:street exists. We discussed this issue 10 y ago here https://openstreetmap.cz/talkcz/c1037 , it's a long thread in Czech only. In short - due to complexity of czech address system we don't have better solution for this. I reopened the discussion in talk-cz, but, I'm afraid of we'll not find better solution now because of nothing in the czech address system complexity changed.

pedro042 commented 2 weeks ago

Try search Zadov 8, Stachy - Zadov is streetname, Stachy is the municipality/village name

biodranik commented 2 weeks ago

@pedro042 why addr:city can not be used instead of addr:place?

pedro042 commented 2 weeks ago

@biodranik housenumbers are not unique in "city" but in "part_of_city". (část obce) It"s what we put into addr_place.

biodranik commented 2 weeks ago

I see. Why this approach was chosen despite Nominatim and OSM community ignoring it?

What is the right way to algorithmically process it? Would it be safe to

if (addr:place and addr:street and in Czech) {
  node_way_or_relation.city = valueof(addr:place)
}

CC @vng

pedro042 commented 2 weeks ago

FYI - Czech doesn"t exists, it"s the reason why searching doesn"t work

What works:

Zadov 8 Zadov 8, Czechia Zadov 8, Czech Republic Zadov 8, Stachy, Czechia etc but not Czech (Country Czech doesn"s exist)

Check https://www.openstreetmap.org/relation/51684 for country names (Czech is a language, but not country)

biodranik commented 2 weeks ago

Of course, sorry for the typo. It was just a pseudo-code.

pedro042 commented 2 weeks ago

It"s not about pseudo code, it"s about Nominatim which doesn"t return any result if you"re lookung for address in non-existant country. I think the issue about Zadov 8 is resolved, right? It was not about addr:place but about wrong query.

vng commented 2 weeks ago

Not taking into account special Czech addr:place/city.

"Zadov 8", "Zadov 9" don't work. Probably because the parent "Zadov" street is far away from the address. "Zadov 10" works fine.

Update addr_street_very_far.osm test.

pedro042 commented 2 weeks ago

Another "speciality" of CZ cadastre. It"s in cadastre database, address place 2 km far from the street geometry is not rare. It"s nothing what we can fix ... In this case it"s "only" 1030 meters ...

pedro042 commented 2 weeks ago

I installed Organicmaps on Android (never used before) to check tge search engine. You're right, of course, this APP doesn't find Zadov 8 but Zadov 10 can. Nominatim cat find both. If the issue is the distance of the address place from street, you should change the algo - see attachet CSV . It's top 200 address places in CZ most far from the related street. Yes, top is more than 9 kilometers. I performed the query on cadastre DB. If you want more rows, tell me which distance I've to ingerit > 1000 meters or so. streetdistance.csv tab separated values

biodranik commented 2 weeks ago

@vng if the street is explicitly tagged on a feature, why should it be filtered by distance when matching?

vng commented 2 weeks ago

This is not about filtering. The current algo fetches addresses near the street when matching. New algo needs big refactoring. Algo that also can match addresses like here: https://github.com/organicmaps/organicmaps/issues/9029#issuecomment-2311928277