OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2011-07-11 19:45:48

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Kurz zum Hergang. Zum einen hat es mich schon immer geärgert, dass es kein einfaches Beispiel gibt, wie man eine Nominatim Ortssuche in OpenLayers einbindet. Zum anderen spiele ich auch schon eine Weile mit sprachlokalisierten Karten rum. Beides steht jetzt - zumindest als Prototyp

1) Einbindung von Nominatim in eine OL Karte
Erstmal möchte ich auch hier Max (a.k.a. maxbe) danken, der das programmiert hat. Ohne ihn hätte ich das nicht hinbekommen. Ich habe nur rumgemeckert, wenn mir was nicht gepasst hat.
Die Suche ist mehrsprachig. Die Eingaben können in jeder Sprache erfolgen. Der Suchbegriff muss nur in in OSM als name(:xx) eingetragen sein. Ist halt so wie in OSM. Die Ausgabesprache kann in der index.html festgelegt werden. Sofern die gewünschte Sprache nicht vorhanden ist, wird name= ausgegeben. Die Anzeige der Resultate wurde etwas gekürzt (verglichen mit osm.org). Das ist in 99% der Fälle gut.
Die Kategorien werden in einer speziellen Datei übersetzt. Bspw gibt Nominatim Kategorien wie city, town, place_of_worship zurück. Wer sich nicht die Arbeit machen will und bei null anfangen, hier mal ein erster Entwurf.
german.osm4people.org/nominatim-i8n.csv

Die Anleitung mit einem einfache Beispiel findet sich hier
http://wiki.openstreetmap.org/wiki/User … yers_Suche

Falls Bedarf besteht, könnte ich alle nötigen Files zusammen packen. Müsste out-of-the-box laufen

2 Sprachlokalisierte Karte
Für uns ist es nicht so wild. In den meisten Gegenden ausserhalb ex-Sowietunion, Arabien und Asien können wir die Karten lesen. Anderen geht es nicht so. Daher habe ich mal ein paar Karten in lokalen Sprachen erstellt. Hier ein Beispiel in kyrillisch (serbisch) inkl angepasster Nominatim Suche
http://serbia.osm4people.org/
Zum Layer Српски springen.
Wenn man bspw nach "Moskau" sucht, findet man die Stadt Moskau (1) und als zweites ein Weiler in DE.  Man sieht, dass nicht alles in allen Sprachen übersetzt ist....klar, wer übersetzt schon ein Weiler in NRW.
Es ist nur Europa geladen. Es ist bis zu Zoom Level 10 vorgerendert. 11 ist noch recht langsam in Gegenden mit viel Daten. Die Tiles werden gecacht. Der nächste, der das Gebiet anschaut, bekommt die Tiles wesentlich schneller. Ab Level 12 ist es für meinen Geschmack meist akzeptabel.
Auch wenn sich jetzt viele drauf stürzen, kann es langsam werden, da ich keine Tiles a la "more osm is coming soon" nutze.
Achja, die Übersetzung der Kategorien ins Serbische ist noch fehlerhaft. Ich kann kein serbisch und warte noch auf Feedback von der lokalen Community.....nur falls es jemand bemerkt

@Edwin
Du nimmst bitte http://german.osm4people.org/ und schaltest ins Layer DE-OSM. Dort findest Du alles in Deutsch - sofern in OSM eingegeben.


Thomas

Offline

#2 2011-07-12 09:09:43

Lübeck
Member
Registered: 2009-02-17
Posts: 2,556

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

hi !

habe den Code mal bei mir abgelegt und den einen vorhandenen Fehler noch beseitigt aber die Suche liefert bei mir immer ...

No Search Results "Lübeck"

?????????????

Gruß Jan :-)


Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit

Offline

#3 2011-07-12 09:12:53

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

was passiert wenn Du http://deine.domain.de/mapquestjs.php?q=Luebeck eintippst? Das hier?

10.727542874312 53.8726678070735 Verwaltungsgrenze: Schleswig-Holstein (Landmasse) Administrative: Lübeck, Ostholstein, Schleswig-Holstein (Landmasse) 10.6847384 53.8664436 Stadt: Lübeck, Schleswig-Holstein, Germany City: Lübeck, Ostholstein, Schleswig-Holstein, Germany, Europa -81.6264926892373 39.2276586850205 Verwaltungsgrenze: Lubeck, West Virginia, Vereinigte Staaten von Amerika Administrative: Lubeck, Washington, West Virginia, Vereinigte Staaten von Amerika /* end */

Last edited by SunCobalt (2011-07-12 09:13:35)


Thomas

Offline

#4 2011-07-12 09:18:19

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

SunCobalt wrote:

was passiert wenn Du http://deine.domain.de/mapquestjs.php?q=Luebeck eintippst? Das hier?

10.727542874312 53.8726678070735 Verwaltungsgrenze: Schleswig-Holstein (Landmasse) Administrative: Lübeck, Ostholstein, Schleswig-Holstein (Landmasse) 10.6847384 53.8664436 Stadt: Lübeck, Schleswig-Holstein, Germany City: Lübeck, Ostholstein, Schleswig-Holstein, Germany, Europa -81.6264926892373 39.2276586850205 Verwaltungsgrenze: Lubeck, West Virginia, Vereinigte Staaten von Amerika Administrative: Lubeck, Washington, West Virginia, Vereinigte Staaten von Amerika /* end */

eventuell hat "Lübeck" ja auch Nick-Suche gemeint? DAS kann Nominatim noch nicht wink

Solange ich mich mit Computern rumschlage, hat es immer Probleme mit den kleinen ähhhs und die großen Ühhhs gegeben. Das bleibt wohl für immer so.

Gruss
Walter

Offline

#5 2011-07-12 09:26:52

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

wambacher wrote:
SunCobalt wrote:

was passiert wenn Du http://deine.domain.de/mapquestjs.php?q=Luebeck eintippst? Das hier?

10.727542874312 53.8726678070735 Verwaltungsgrenze: Schleswig-Holstein (Landmasse) Administrative: Lübeck, Ostholstein, Schleswig-Holstein (Landmasse) 10.6847384 53.8664436 Stadt: Lübeck, Schleswig-Holstein, Germany City: Lübeck, Ostholstein, Schleswig-Holstein, Germany, Europa -81.6264926892373 39.2276586850205 Verwaltungsgrenze: Lubeck, West Virginia, Vereinigte Staaten von Amerika Administrative: Lubeck, Washington, West Virginia, Vereinigte Staaten von Amerika /* end */

eventuell hat "Lübeck" ja auch Nick-Suche gemeint? DAS kann Nominatim noch nicht wink

Solange ich mich mit Computern rumschlage, hat es immer Probleme mit den kleinen ähhhs und die großen Ühhhs gegeben. Das bleibt wohl für immer so.

Gruss
Walter

Nein, Du kannst auch mit Umlauten suchen. Auch Chinesisch geht 北京
Der Link ist nur zum testen ob das php Skript geht.  Vermutlich liegts an der fehlenden curl Unterstützung. Das sollte ich auf der Wiki-Seite als Vorrausetzung ergänzen


Thomas

Offline

#6 2011-07-12 10:01:58

maxbe
Member
Registered: 2010-01-19
Posts: 3,005
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Lübeck wrote:

habe den Code mal bei mir abgelegt und den einen vorhandenen Fehler noch beseitigt aber die Suche liefert bei mir immer ... No Search Results "Lübeck"

Was war der eine Fehler?


SunCobalt wrote:

was passiert wenn Du http://deine.domain.de/mapquestjs.php?q=Luebeck eintippst? Das hier?

10.727542874312 53.8726678070735 Verwaltungsgrenze: Schleswig-Holstein...

Wenn Du stattdessen das hier siehst, fehlt Dir curl:

Fatal error: Call to undefined function curl_init() in /irgend//ein/pfad/mapquestjs.php on line 71

Grüße, Max

Offline

#7 2011-07-12 10:10:35

Lübeck
Member
Registered: 2009-02-17
Posts: 2,556

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

hi !

ich hatte den Fehle - habe die html lokal ausgeführt und nicht daran gedacht das ja die php angesprochen wird und somit der webserver aktiv sein muss.

Das habe ich jetzt nachgeholt und bekomme die Meldung

Parse error: syntax error, unexpected T_VARIABLE in .....\deu\mapquestjs.php on line 77

Das ist die Zeile mit

$xml_parser = xml_parser_create();

Dafür muss vermutlich erst wieder ein anderes Paket installiert werden ??

Wäre das eigentlich bei "Standard"-Webserverern (1und1) verfügbar ?

Gruß Jan :-)


Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit

Offline

#8 2011-07-12 10:15:16

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Lübeck wrote:

Wäre das eigentlich bei "Standard"-Webserverern (1und1) verfügbar ?

ja, die beiden oben verlinkten Karten liegen bei 1und1

hast Du php5-curl installiert?

@Max
Ich hatte einen copy 'n paste Fehler drin. Habe übersehen, dass eine Zeile weitergeht (endet in nano mit $)
http://wiki.openstreetmap.org/w/index.p … did=656089


Thomas

Offline

#9 2011-07-16 00:35:35

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

SunCobalt wrote:
Lübeck wrote:

Wäre das eigentlich bei "Standard"-Webserverern (1und1) verfügbar ?

ja, die beiden oben verlinkten Karten liegen bei 1und1

hast Du php5-curl installiert?

@Max
Ich hatte einen copy 'n paste Fehler drin. Habe übersehen, dass eine Zeile weitergeht (endet in nano mit $)
http://wiki.openstreetmap.org/w/index.p … did=656089

hab mapquestjs.php korrigiert. in Zeile 75 fehlte ein Semicolon. Daher kam der Fehler mit "Parse error: syntax error, unexpected T_VARIABLE in .....\deu\mapquestjs.php on line 77"

Gruss
Walter

p.s. Das ist aber nicht der OSM-Nominatiḿ Server. Das ist doch ein N-Server bei MapQuest mit OSM-Daten, oder?

und eine vernünftige nominatim-i8n.csv zumindest en/de wäre auch nicht schlecht.

Last edited by wambacher (2011-07-16 00:40:51)

Offline

#10 2011-07-16 02:39:18

maxbe
Member
Registered: 2010-01-19
Posts: 3,005
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

wambacher wrote:

p.s. Das ist aber nicht der OSM-Nominatiḿ Server. Das ist doch ein N-Server bei MapQuest mit OSM-Daten, oder?

Ja. Der richtige Nominatim-Server hat recht enge Vorstellungen von bestimmungsgemässem Gebrauch, die "Du darfst nicht mehr als 1x pro Sekunde fragen"-Regel ist schon sehr knapp. Das Ding arbeitet ja praktisch als Proxy, "Du darfst..." heisst in diesem Fall "alle Deine Besucher zusammen dürfen...".

Das hat Mapquest nicht, Daten sollten dort auch hinreichend aktuell sein und der Preis der kleinen Danksagung unterm Suchknopf ist ok, finde ich

Der Unterschied zum OSM-Nominastim wäre die URL in Zeile 72. Statt "open.mapquestapi.com/nominatim/v1/search?q=..." einfach "http://nominatim.openstreetmap.org/search?q=..."  einsetzen sollte funktionieren.

Grüße, Max

Offline

#11 2011-07-16 09:10:30

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

maxbe wrote:

Das hat Mapquest nicht, Daten sollten dort auch hinreichend aktuell sein und der Preis der kleinen Danksagung unterm Suchknopf ist ok, finde ich

Ich bau den gerade in mein PLZ-Tool ein. Da kommen nicht allzuviele Requests rein - schätzte mal 1-2 pro Tag wink

Was mich derzeit erschüttert, ist die Qualität der Mapquest-Suche. Einfache Städte ("Nordhorn") oder auch etwas schwierige ("castrop-rauxel","bad homburg") findet er nicht; von Strassen mit Hausnummern nicht zu reden.

Kann aber auch ein "Starter-Problem" sein, da ich das Beispiel  fast 1-1 übernommen habe.

Ich werd mal nen Switch zur Auswahl der Suchmaschine einbauen; dann weiss ich wenigstens wer "spinnt".

gruss
walter

Offline

#12 2011-07-16 09:17:39

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

wambacher wrote:

Einfache Städte ("Nordhorn") oder

Da sagt er bei mir "Stadt: Nordhorn, Niedersachsen, Deutschland"

wambacher wrote:

auch etwas schwierige ("castrop-rauxel","bad homburg") findet er nicht

- Stadt: Castrop-Rauxel, Nordrhein-Westfalen, Deutschland
- Autobahnkreuz: Castrop-Rauxel, Castrop-Rauxel, Stadt, Nordrhein-Westfalen, Deutschland

und bei Bad Homburg bringt er
Autobahnkreuz: Bad Homburg, Bad Homburg vor der Höhe, Hessen, Deutschland

Was an Ergebnissen kömmen müsste, kannst Du hier schauen
http://open.mapquestapi.com/nominatim/v1/

Statt des lokalen php Skripts kannst Du ja mal hilfsweise das hier einbinden.
http://german.osm4people.org/mapquestjs.php

Dein eigenes php Skript kannst Du mal testen, wenn das das hier eingibst
http://deine.domain.de/mapquestjs.php?q=Berlin

Da müsstest Du dann das sehen
13.4023051674614 52.5014783395417 Administrative: Berlin Administrative: Berlin 13.4023271 52.5015955 State: Berlin, Germany State: Berlin, Germany, Europe 13.3888548 52.5170397 City: Berlin, Berlin, Germany City: Berlin, Berlin, Stadt, Mitte, Berlin, Germany, Europe /* end */

Last edited by SunCobalt (2011-07-16 09:21:06)


Thomas

Offline

#13 2011-07-16 09:24:54

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

danke,

dann muss ich wohl mal in die Details gehen.

gruss
Walter

Offline

#14 2011-07-16 09:29:25

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

wenn ph5-curl nicht installiert ist, sieht auf der Karte so aus, als wenn gar nichts gefunden wird


Thomas

Offline

#15 2011-07-16 09:37:47

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

hier die Dateien direkt vom Server, wie sie eben noch liefen. Hoffe damit fehlenden Kommas durch Copy und Paste ausschliessen zu können
http://suncobalt.homeip.net:82/test/beispiel.zip

genau so müsste es dann gehen
http://suncobalt.homeip.net:82/test/beispiel1.html

Last edited by SunCobalt (2011-07-16 09:38:45)


Thomas

Offline

#16 2011-07-16 09:54:10

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

sieht ja hübsch aus. nur diese meldung "no search result for..." ist ein wenig verwirrend. er findet es ja trotzdem.

gruss
walter

Offline

#17 2011-07-16 09:56:40

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

ohje, da habe ich die Strings für "No search results for" und "Search results for" vertauscht. Danke für den Tipp. Eine Minute bitte


Thomas

Offline

#18 2011-07-16 10:00:42

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

SunCobalt wrote:

ohje, da habe ich die Strings für "No search results for" und "Search results for" vertauscht. Danke für den Tipp. Eine Minute bitte

sowas kann man ja eigentlich nicht übersehen. das ist das allererste was mich gestern nacht gestört hat.
ok, mach ich mich mal an meine Karte ran.
Gruss
walter

Offline

#19 2011-07-16 10:01:02

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

so

Download
http://suncobalt.homeip.net:82/test/beispiel.zip

Beispiel der in Download enthaltenen Dateien
http://suncobalt.homeip.net:82/test/beispiel1.html

und Wiki geändert.
http://wiki.openstreetmap.org/wiki/User … yers_Suche

Danke für den Hinweis

Sag Bescheid obs bei Dir geht

Last edited by SunCobalt (2011-07-16 10:01:42)


Thomas

Offline

#20 2011-07-16 10:22:35

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

SunCobalt wrote:

Sag Bescheid obs bei Dir geht

wird a bissl dauern - bei mir fackelt gerade die db-platte ab sad

Offline

#21 2011-07-16 10:26:34

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Wenn ich die html Seite anwähle, habe ich das Gefühl, dass es keinen Unterschied macht ob ich nach Dresden oder Regensburg suche. Außer der URL ändert sich nämlich nichts. Auch das Zoomlevel ist relativ hoch, so dass man zwar die Städte schon sieht aber bei kleineren Orten wird es sicher schwieriger.

Offline

#22 2011-07-16 10:34:13

SunCobalt
Member
From: Eislingen
Registered: 2010-01-09
Posts: 3,721

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

viw wrote:

Wenn ich die html Seite anwähle, habe ich das Gefühl, dass es keinen Unterschied macht ob ich nach Dresden oder Regensburg suche. Außer der URL ändert sich nämlich nichts. Auch das Zoomlevel ist relativ hoch, so dass man zwar die Städte schon sieht aber bei kleineren Orten wird es sicher schwieriger.

Das kannst Du hier ändern

function jumptolonlat(lon,lat){
       if(!vectorLayer.getVisibility()){vectorLayer.setVisibility(true)}
       var LonLat = new OpenLayers.LonLat(lon,lat).transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject());
       map.setCenter(LonLat,12);
       Point.move(LonLat);
       return false;
      }

Aber ergebnisabhängiges Zoomlevel gibts noch nicht


Thomas

Offline

#23 2011-07-16 10:41:28

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Im zweiten Versuch sieht es jetzt besser aus. Da wird die Karte auch wirklich ans Ziel bewegt.

Offline

#24 2011-07-17 13:40:58

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 15,600
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

hi,

ich hab mal meine PLZ-Auswertung (http://wnordmann.homeunix.com/otm/plz.html) um eine MapQuest-Suche erweitert.

Basierend auf den hier vorher erwähnten Scripten, allerdings mit einigen Änderungen, die mir sinnvoll erschienen.
Insbesonders erfolgt die Ausgabe der Suche und die Navigation in einem Popup, damit mehr Platz für die Karte bleibt.

Gruss
Walter

Offline

#25 2011-09-29 13:41:27

dimmer
Member
From: Belarus
Registered: 2010-09-06
Posts: 92
Website

Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten

Hi. Sorry for english, but my Deutsch is not good. I downloaded beispiel.zip and uploaded it here. I don't know why, but on my site the search doesn't work the same as on german.osm4people.org. I can't find many places in Belarus like Марьина Горка, Большая Берестовица, Жодино, Жлобин, Логойск. German.osm4people.org finds them easily. Any suggestion?

Offline

Board footer

Powered by FluxBB