Mangelhafte Suchfunktion von OpenStreetmap

Die 502er sehe ich heute auch oft, da scheint Nominatim überlastet zu sein. Das ist ein grundsätzliches Philosophieproblem der fehlenden Zugriffsbeschränkung, die immer wieder zu viele Scraper etc. auf den Plan ruft.

Ansonsten ist die Liste von Dir, the-asca, eine sehr gute Ideenliste der Verbesserungsvorschläge für das Frontend und andere Verbesserungen.

Und zu 4.:

Da kann jeder etwas beitragen, indem die SpecialPhrases Listen erweitert werden. Dafür braucht es keinerlei Programmierkenntnisse, nur osm tag Kenntnisse. Siehe: https://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases

Die Tabellen im Wiki zu den einzelnen Sprachen bei der SpecialPhrases sind sonst ziemlich selbst erklärend.

(Dabei bitte beachten: ist leider manchmal unpraktisch, besser ist <in|in der Nähe von| im|etc.> ). Ok bei z.B. Zahnarzt/Apotheke/Spielplatz, etc., schwierig bei z.B. Restaurant oder Hotel etc. Wenn man da verwendet, dann bitte mit Operator ‘-’ (any).
Warum? Weil z.B. mit Restaurant Roma direkt ein Restaurant namens Restaurant Roma in X gemeint sein kann und nicht alle Restaurants in Rom.

Man könnte eine DB auf Tilebasis aufsetzen, in dem restlos alle Begriffe des jeweiligen Tiles unter dessen Tilenummer gespeichert sind. Je nach Zoomstufe sind ja immer nur eine begrenzte Anzahl Tiles zu sehen. Eine Suchfunktion braucht nun also nur noch die Nummern der sichtbaren Tiles aufrufen und deren Einträge mit dem Suchbegriff abgleichen.
“Bayern” würde also nur gefunden, wenn man auf Europaebene rauszoomt. Hat man auf München gezoomt, wird z.B. der Laden eines bekannten Fußballvereins gefunden und dessen Sportgelände.

Eventuell könnte man überlegen halt dem Nutzer alternative Suchvorschläge zu machen, wenn sich dafür ein Algorithmus findet, wie man aus einer gegebenen Suchanfrage halt Alternativen erzeugt.
Sprich dass halt bei “Restaurant Roma” irgendwo steht (direkt als Link um entsprechende Suche anzutriggern): Meinten sie vl. “Restaurant in Roma” oder “Restaurant bei Roma”?
Da kann man sicherlich was aus den SpecialPhrases-Listen was schaffen. Oder halt gleich im Frontend, dass dieses halt dann diese Suchen gleich mit anstößt, was natürlich für mehr Nominatim-Last erzeugen würde. Aber aus Nutzersicht halt besser gleich Alternativ-Ergebnisse zu sehen.

Warum etwas neues erfinden, wenn’s wohl Nominatim schon kann?

Facilmap kann Copyshops anzeigen: https://facilmap.org/#15/51.3440/12.3905/Mpnk-o_copyshop

dass es für ein paar wenige Typologien geht und für andere nicht, ist Teil des Problems. Die Nutzer denken, man kann nach POIs suchen (über den typ), weil es manchmal funktioniert.

Der Link von Spiekerooger ist interessant.

https://www.openstreetmap.org/search?query=beer%20garden%20in%20münchen
findet beides bei mir allerdings auf Anhieb nur 2 Treffer, beides Biergärten in Spanien, nach click auf “mehr” dann auch in Pullach (Landkreis München) und als viertes einen in München.

Sehe jetzt, so geht es: https://www.openstreetmap.org/search?query=beer%20garden%20in%20munich

Was bestens funktioniert hat ist “Bordell in Karlsruhe”, sofort auch ohne “mehr” 10 Treffer: https://www.openstreetmap.org/search?query=bordell%20in%20karlsruhe

Kleine Anmerkung … das letzte Mal, als ich da was eingetragen habe( 2017), hat’s 'ne ganze Weile gedauert, bis jemand die Änderungen mit in die aktuelle Suchsystematik übernommen hatte (soweit ich mich erinnere ein manueller, sporadisch angestossener Prozess).

Gruß
tux67

Ja, das ist ein manueller Prozess, der nicht regelmäßig stattfindet. Umsomehr lohnt es sich wohl, die gewünschten Eintragungen drin zu haben, bevor dieser Prozess das nächste Mal durchläuft.

Spätestens wenn Nominatim auf 4.0 springt, dürfte es ein neuladen der Datenbank geben und diesen Moment will man doch nicht verpasst haben.

Gutes Beispiel für die Suche, auf https://openstreetmap.de/karte.html 82544 Deining eingeben und suchen lassen. Es wird der richtige Ort gefunden. Jetzt noch die Moosstr. 8, getrennt durch ein Komma dran hängen und Suchen. Jetzt landet man in (92364 Deining) der Oberpfalz, obwohl es die Moosstr. 8 in 82544 Deining gibt und sogar die Hausnummer getaggt ist. Google Maps hab ich nicht probiert, aber Bing Maps findet es korrekt, zuerst den Ort, dann zusätzlich noch die Hausnummer in der Straße.

Gibt es eine Stelle an die man sich wenden kann? Ist die Programmierung hier so kompliziert um das ‘richtige’ Ergebnis anzuzeigen?

Ich empfehle OpenStreetMap Freunden und Bekannten, wenn ich dann allerdings solche Beispiele genannt bekomme, kann ich immer nur den Kopf schütteln über so eine grottenschlechte Programmierung. Sorry, anders kann ich es nicht nennen.

Immer langsam mit den Pferden. Du selbst hast die Adresse eingetragen. Zwischen Deining und Egling ist halt schon ein Unterschied, meinst du nicht?

edit:doppelt

Deining ist ein Ortsteil von Egling, siehe Wikipedia: https://de.wikipedia.org/wiki/Egling Die Moosstr. gibt es nur in Deining, nicht in Egling. Aber trotzdem wird z.B. im Ausweis Egling, OT Deining eingetragen. Was taggt man dann richtigerweise? Beide Orte? Oder Egling OT Deining?

Dass ich den Ort selbst eingetragen habe, ist richtig. Es wurde mir kein Deining im Dropdown angeboten, deshalb hatte ich Egling genommen. Hab es jetzt auf Deining abgeändert.

Such doch mal nach 82544 Egling und nach 82544 Deining. Bei Egling wird nicht direkt Egling gefunden, sondern ‘weit’ weg vom eigentlichen Egling: https://www.openstreetmap.org/edit#map=18/47.92294/11.51040 In Egling hab ich jetzt den postalcode 82544 nachgetragen.

BTW: Eine Suche auf Bing Maps nach Moosstr.8, 82544 Egling bringt das richtige Ergebnis, die Moosstr. 8 in Deining.

Aus den OSM-Daten ist nicht ersichtlich, dass Deining ein Ortsteil von Egling ist. Eine irgendwie geartete Zuordnung könnte man mit viel gutem Willen durch spatiale Abfragen erreichen, wenn es genau dieses Deining überhaupt als Place- oder administrative Entität in OSM gäbe. Gibt es aber nicht, weil ein Mapper vor einem Monat den place-key gelöscht hat.

https://www.openstreetmap.org/node/95855586/history#map=15/47.9513/11.5008

Ohne jetzt Dein spezielles Problem besonders analysiert zu haben, im Wiki gibt’s da Beschreibungen dazu, das muss man nicht im Forum erfragen. Hint: addr:city und addr:suburb könnte Abhilfe schaffen oder bei dooley mal den Link in der Signatur klicken und auf Deinen Bereich zoomen. (Oder beides)

Grundsätzlich, auch wenn man mit iD unterwegs ist, sollte man das Wiki beachten. Da gibt es eine nette Seite, die das mit den Adressen IMHO recht gut erklärt: https://wiki.openstreetmap.org/wiki/DE:Key:addr

In dem Fall wäre addr:city = Egling und addr:suburb = Deining wohl nicht verkehrt.

Edit: Upps, da war MKnight schneller :wink:

Moin,

Letzteres:
addr:city = Egling
addr:suburb = Deining
Überlasse ich Dir zum Ändern.

Allerdings fehlte im OT Deining auch der place-node - habe ich mal nachgetragen.

Grüße
Georg

Warum hast du nicht den genommen und angepasst? https://www.openstreetmap.org/node/95855586/history#map=15/47.9513/11.5008 Dar war nämlich schon mal ein place=village, siehe Beitrag #38

Sorry, die Beiträge haben sich überschnitten - hatte die Antwort vorher begonnen, wurde durch den fehlenden place abgelenkt, hab’s bearbeitet ohne erst nach dem Namen zu suchen und hab sie später ohne vorheriges Update abgeschickt …

Ok, dieses “OT Deining”-Beispiel ist kein Beispiel dafür, dass es was in Nominatim oder der Oberfläche zu verbessern gäbe, sondern tatsächlich in den Quelldaten.

Denn Nominatim findet halt “82544 Deining” weil es als einzelner Node erfasst ist. Damit ist aber natürlich Nominatim nicht klar, dass die Häuser rings um (wie weit denn auch?) zu “82544 Deining” gehören. Die Häuser selbst haben halt nur erfasst:

addr:city=Egling
addr:postcode=82544
addr:street=...
addr:housenumber=...

ohne

addr:suburb=Deining

Ist ja dann unklar, dass es der Ortsteil Deining von Egling ist. Teils sind die Häuser auch erfasst mit:

addr:city=Egling

wie die #6 und #4 und dann werden sie auch gefunden.

Also entweder müsste man überall sie so erfassen:

addr:city=Egling
addr:postcode=82544
addr:suburb=Deining
addr:street=...
addr:housenumber=...

Oder aber man gibt die Daten an diesem Way an, welcher alles umschließt?
https://www.openstreetmap.org/way/77813399
Da bin ich mir aber nicht sicher, ob das jetzt so “richtig” wäre oder doch besser eine Relation, welche diesen Way als auch die Node halt umfasst?

Des weiteren hattest du einen Typo-Fehler, du hast adr:suburb geschrieben statt addr:suburb. Habe ich eben fix gefixt: https://www.openstreetmap.org/changeset/113023793

Aber ja, letztlich ist auch dies ein Punkt, weshalb die Suche teils unverständliche Ergebnisse liefert. Liegt nicht an der Software, sondern am Datenbestand. Aber das müssen wir ja jetzt nicht diskutieren, denn da ist ja sowieso klar, dass wir da alle gemeinsam unser bestes tun, dies nach und nach zu verbessern. Ggf. könnte man überlegen, wie man solche “Fehler” im Datenbestand eventuell entdecken kann.

Moin,

zwar nicht “klar” - aber Nominatim wertet da schon ggf. den Abstand aus.
Was aber ja bei klein-/großräumigen Siedlungsflecken nebeneinander auch zu Mißinterpretationen führt - eben wegen des “wie weit”.

Grüße
Georg

Interessanter Hinweis…

In der DE-Liste findet sich auch “Naturschutzgebiet” und zwar mit diesen 2 Tagging-Varianten
landuse=conservation (in D glücklicherweise ungebräuchlich)
leisure=nature_reserve (problematisch, sollte/kann langfristig ganz entfallen)

Der korrekte Erkennungs-Tag wäre eigentlich:
protection_title=Naturschutzgebiet

Das gilt natürlich nur, wenn der Nutzer dezidiert NSGs nach deutschem Recht sucht,
wer dies meint: “NSGs und grob vergleichbare Schutzgebiete - weltweit”:
protect_class=4

wenn dies meint “irgendwelche Schutzgebiete des Natur- und Landschaftsschutzes - weltweit”:
boundary=protected_area

Dieses semantische Problem ist schwer lösbar…

Beim “Berg” ist das einfacher, und ich bin die etwas sperrige Sache mal probehalber angegangen:
https://wiki.openstreetmap.org/w/index.php?title=Nominatim%2FSpecial_Phrases%2FDE&type=revision&diff=2212583&oldid=2212285
wer nach “Gipfel” oder “Berggipfel” sucht hat wohl Pech;-)


“Naturschutzgebiet in […]”
liefert Treffer, in der Form
Naturschutzgebiet Dönche, Heinrich-Schütz-Allee, Dönche, Kassel, Niestetal, Hessen, 34134, Deutschland”

Suche nach “Dönche” dagegen
Schutzgebiet Dönche, Kassel, Niestetal, Hessen, Deutschland”

was mich zu der Frage bringt, gibt es für den output, bzw. dessen Benennung auch derartige Listen?