x

Nominatim Suche mit OpenLayers und sprachlokalisierte Karten


  1. Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 11.07.2011 19:45 · [flux]

    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.


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · Lübeck (Gast) · 12.07.2011 09:09 · [flux]

      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 :-)


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 12.07.2011 09:12 · [flux]

      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 */


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 12.07.2011 09:18 · [flux]

      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 😉

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 12.07.2011 09:26 · [flux]

      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 😉

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · maxbe (Gast) · 12.07.2011 10:01 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · Lübeck (Gast) · 12.07.2011 10:10 · [flux]

      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 :-)


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 12.07.2011 10:15 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 00:35 · [flux]

      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.


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · maxbe (Gast) · 16.07.2011 02:39 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 09:10 · [flux]

      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 😉

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 09:17 · [flux]

      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 */


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 09:24 · [flux]

      danke,

      dann muss ich wohl mal in die Details gehen.

      gruss
      Walter


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 09:29 · [flux]

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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 09:37 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 09:54 · [flux]

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

      gruss
      walter


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 09:56 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 10:00 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 10:01 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 16.07.2011 10:22 · [flux]

      SunCobalt wrote:

      Sag Bescheid obs bei Dir geht

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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · viw (Gast) · 16.07.2011 10:26 · [flux]

      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.


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 16.07.2011 10:34 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · viw (Gast) · 16.07.2011 10:41 · [flux]

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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · wambacher (Gast) · 17.07.2011 13:40 · [flux]

      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


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · dimmer (Gast) · 29.09.2011 13:41 · [flux]

      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?


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · SunCobalt (Gast) · 29.09.2011 14:36 · [flux]

      dimmer wrote:

      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?

      please download it again. I have no idea why but the mapquestjs.php had an error.


    • Re: Nominatim Suche mit OpenLayers und sprachlokalisierte Karten · dimmer (Gast) · 29.09.2011 15:46 · [flux]

      Thank you. Now it works great.