Punkte aus Datenbank holen und mit OpenLayers anzeigen

Wenn man Wege direkt aus der Datenbank in Openlayers anzeigen will, dann müsste es doch sogar funktionieren, wenn man einfach beim Openlayers Track Example anstelle der GPX-Datei den Uni-Stuttgart-Link mit den entsprechenden Parametern angibt…

Ah, gut! Ich habe mir erlaubt, folgende Änderungen zu machen: * Das Skript wird nicht von der Uni Stuttgart bereitgestellt, die stellt nur freundlicherweise den Webserver. * es ist sinnvoller erst DB->OSM und dann DB->GPX zu erklären, da das GPX-Skript den DB->OSM-Schritt einbindet. * der einzige Schlüssel, der von dem Skript bis jetzt verstanden wird, sind amenities. Am WE dann mehr. Grüße, Tobi-Wan

Dafür ist das Wiki ja da! Schön fände ich: 1. das Script erweitern auch auf andere und kombinierte Schlüssel (nicht nur amenity) 2. wenn man in JOSM mit mehrere Elemente anwählen und als GPX exportieren könnte. 3. wenn der Export auch direkt als XLS für Excel möglich wäre. Gruss, Markus

Sowas habe ich auch vor. Muss mal schauen, wie sich das sinnvoll realisieren lässt.

das wäre sicher cool :wink:

Hust Dann eher als CSV, dann sind die Daten nämlich auch von anderen Tabellenkalkulationen lesbar. Das wäre kein Problem.

Guten Morgen Tobi,

Klar Excel kann notfalls auch CSV lesen :wink: Ich freue mich, dass OSM zunehmend mehr Anwendungs-Funktionalität bekommt. Schön wenn das plattformunabhängig erfolgt. Gruss, Markus

Sodele, (hab ich mich jetzt als Schwabe geoutet? :wink: ) Hab eine neue Version des Skriptes geschrieben, das die gleichen Angaben wie www.informationfreeway.org annimmt und GPX, CSV und das Openlayers-Format exportiert. Weiter Formate lassen sich recht einfach zufügen. Die Syntax ist im Wiki (http://wiki.openstreetmap.org/index.php/DE:Daten_aus_der_Datenbank_filtern#Daten_filtern_und_exportieren) beschrieben. Anregungen? Tobi-Wan

Hi Tobi,

das klappt super! Habe die Kirchen gefiltert, exportiert und mit OpenLayers als “Sehenswürdigkeiten” eingebunden Schlösser und Burgen brauche ich noch… (historic=castle) Warum kann man bei “poi” ein Symbol angeben, und bei “gps” und “csv” nicht? Das mit dem URL-Syntax fand ich etwas verwirrend, habe ich etwas umschrieben (finde es aber immer noch nicht klar). Stimmen meine Änderungen? Gruss, Markus

Schön!

Meines Wissens ist das poi-Format das einzige, das Icons unterstützt. CSV ist sowieso willkürlich, und wenn Waypoints aus einer GPX-Datei von Programmen unterschiedlich dargestellt werden, wird mW das -Tag ausgelesen und interpretiert. Bei der Vielzahl der möglichen Nodes ist es schwierig, eine Zuordnungstabelle OSM-node<->GPX-type zu erstellen, auch habe ich keine Liste mit Standart-GPX-types gefunden. Einfach machbar ist aber natürlich, dass der Anwender den GPX-type mit einem weiteren Parameter angeben kann. Das klingt eigentlich sinnvoll. Als Default wäre dann “waypoint” denkbar. So kann das jeder auch an die Interpretation seines GPSrs anpassen.

Soweit ich sehe, ja. Am besten wäre eigentlich ein Formular, das dem Skript vorgeschaltet wird, und das dynamisch die richtige URL anzeigt. Grüße, Tobi-Wan

Hi Tobi,

Super! so stelle ich mir Benutzerfreundlichkeit vor! Und das Ganze trotzdem als URL dokumentiert für die “freaks”… Wenn ich richtig verstehe, funktioniert Dein Script für alle punktförmigen Objekte? Also auch für gemischte Schlüssel (amenity, historic, …)? Aber nicht für Linien, Flächen und Relationen? Gruss, Markus

Ich mir auch :wink: Mal schauen, wann ich dazu komme.

jenau, einfach für alle nodes. Wenn man nur eine BBox angibt, bekommt man sogar die unbenannten Nodes… Grüße, Tobi-Wan

Hallo Tobi, ich versuche:

http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=test&query=[historic=castle][bbox=11.28,49.57,11.4,49.68]

und bekomme: Problems contacting the Database Please try again later. http://www.informationfreeway.org/api/0.5/node[historic=castle][bbox=11.28,49.57,11.4,49.68] Und ich habe ein Problem mit OpenLayer, das nicht mit GPX umgehen kann. Kann Dein Tool auch KLM? oder GML? Gruss, Markus

Das liegt (meiner Meinung nach an informationfreeway. Die sind regelmäßig überlastet oder nicht erreichbar. Die URL, die angegeben wird, ist der Request, der nicht erfolgreich war. Das diente vor allem mir zu Fehlersuche…

Theoretisch kann man praktisch alles einbauen, warum benutzt Du nicht das POI-Format zur Einbindung mittels OpenLayers. Layer.Text? Was genau willst Du mit Openlayers machen? Grüße, Tobi-Wan

Hallo Tobi,

Ja, das schaue ich mir mal an, was Dein Tool erzeugt, wenn ich POI wähle. Im DE:Wiki habe ich nichts dazu gefunden. Ich hätte gern anklickbare Punkte, Linien und Flächen, mit Attributen und Bildern in Popup… Meine Baustelle ist hier beschrieben . Eigentlich wollte ich “nur schnell mal ausprobieren”, wie man Daten auf eine Website bringt. Aber nun zieht es Kreise… Wenn Du Ideen hast: gern dort im Wiki, direkt per PM, im Workshop oder hier im Forum… Gruss, Markus

Hallo Markus, OK, zumindest das Generieren ist jetzt leichter: http://www.faveve.uni-stuttgart.de/~troll/OSM/index2.html Würde mich über ein paar Tests freuen, bevor ich’s in’s Wiki packe. Grüße, Tobi-Wan

Hey Tobi, das wird ja immer schöner! Tests und Gedanken: - GPX funktioniert - vor einem neuen “get waypoints” muss die Seite neu geladen werden - CSV lädt alle Attribute eines Datensatzes in ein einziges Tabellenfeld. Mit “Daten - Text in Spalten” lässt sich das im Excel am Trenner (Komma) auftrennen. - POI warum bekomme ich da keine Datei? (braucht man doch?) Ich nehme an, man muss das Ergebnis in eine TXT-Datei kopieren? (Ein neuer Browser-Tab fürs Ergebnis wäre übersichtlicher.) - Attribute landen immer alle zusammen in “description”, auch wenn es mehrere unterschiedliche Attribute sind. Das scheint mir für die weitere Verarbeitung ungünstig. Genial finde ich die automatische bbox! Andererseits: noch idealer wäre ein mit der Maus in der Karte aufziehbarer veränderbarer Rahmen, damit könnte man den Bereich genauer bestimmen (noch besser wäre ein Polygon, aber ich nehme an, es geht nur eine rechteckige bbox?) Suche klappt mit den von Dir voreingestellten Parametern bestens! Schön wäre natürlich ein Auswahl-Dropdown, das die möglichen Schlüssel/Wert-Kombinationen in D und E anbietet… Funktioniert hat auch: http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=waypoints&query=[bbox=11.25762,49.53658,11.41589,49.64675][historic=castle] http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=waypoints&query=[bbox=11.25762,49.53646,11.41589,49.64662][amenity=bench] Nicht funktioniert hat: http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=waypoints&query=[bbox=11.25762,49.53643,11.41589,49.64659][place_of_worship=church][historic=castle] (bringt nur Schlösser) http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=test&query=[bbox=11.25762,49.53671,11.41589,49.64687][place_of_worship=church][historic=castle][] (Ergebnis jeweils >1000 Punkte) Da scheint auch beim abschliessenden ein zusätzliches Klammerpaar angefügt zu werden. http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=gpx&filename=waypoints&query=[bbox=11.25762,49.53649,11.41589,49.64665][place_of_worship=church] bringt eine leere Datei. Und wenn ich das Ergebnis von http://www.faveve.uni-stuttgart.de/~troll/OSM/osm-poll.cgi?format=poi&icon=Icon_blue.png&iconSize=24,24&iconOffset=0,-24&query=[bbox=11.25762,49.53658,11.41589,49.64675][historic=castle] an meine textfile.txt dranhänge (in der schon drei Marker sind) und im Layer “aus Datei” anzeige, dann werden die angehängten nicht angezeigt (blitzen aber kurz auf…). “Verschwunden” ist der Layer “Sehenswürdigkeiten” (die GPX ist noch da), und der einzelne Marker “Rathaus Simmelsdorf” (incl Popup und Bild) Aber das habe ich bestimmt irgendwie selbst versaubeutelt… Gruss, Markus

Hallo Tobi-Wan, ja ganz tolle Sache was Du hier aufbaust, es sollte doch noch möglich sein die Daten dann auch gleich zur Kontrolle in der Karte anzuzeigen oder? Du hast ja die POI und könntest die damit in die Karte einbinden: var pois = new OpenLayers.Layer.Text( “My Points”, { location:“<%DIE URL%>”, projection: new OpenLayers.Projection(“EPSG:4326”)} ); map.addLayer(pois); Es gibt ja schon andere Webseiten die gewünschte POI’s anzeigen aber keine ist so flexibel wie diese hier. Gruss Zapfen

Die Zeile gibt es schon auf der Seite (allerdings auskommentiert), ich bin gestern nur noch nicht dazugekommen, einen “Aktualisieren”-Knopf einzubauen. Mal schauen, wann ich dazu komme, auch Markus’ Tests muss ich mir genauer anschauen. Grüße, Tobi-Wan

Hallo Tobi-Wan, ja super, keine Hektik alles Gute braucht Zeit. Für die Abfrage habe ich noch die Idee eine kleine Logik mit AND / OR einzubauen. Im Moment sind alle Abfragen mit AND verbunden. Wenn Du irgendwie die OR Verknüpfung einbauen könntest würde eine Abfrage sehr viel flexibler sein. Beispiel: amenity=post_office OR amenity=pharmacy OR shop=supermarket AND name=coop Das würde dann alle Post stellen, Apotheken und Coop Filialen bringen. Denkst Du das ist sinnvoll? Viele Grüsse Zapfen

Danke :smiley:

Muss ich mir mal in Ruhe anschauen

Das ist ein Excel-Problem… OpenOffice kann das :stuck_out_tongue: Excel erwartet da wohl ein Semicolon :rage: Vielleicht lasse ich mich vom Quasi-Monopolisten beeinflussen…

Es war geplant, dass man die URL direkt in die Layerdefinition einbaut (wie von Zapfen geschrieben). Ich muss mal schauen, ob das mit den OpenLayers noch funktioniert, wenn ich “force-download” als Mime-Type angebe (dann würde der Browser die Daten als Datei speichern).

Wieder das alte Problem mit der eindeutigen Zuordnung mehrerer Tags zwischen verschiedenen Formaten. Bei GPX sehe ich momentan keine andere Möglichkeit, bei POI habe ich die Einträge durch
getrennt, damit man sie im Pop-Up darstellen kann. Bei CSV könnte ich eingentlich das gleiche Trennzeichen benutzen, wie für die Zellen davor. Damit wäre die Breite der Tabelle variabel. Mal nachdenken… Meinungen?

Polygon: wird von der XAPI nicht unterstützt. Rahmen in Karte: Uff, ich glaube, das übersteigt meine Künste. V.a. müsste ich da tiefer in die OpenLayers-Materie einsteigen. Aber man kann die BBox-Form durch vergrößern/verkleinern des Browserfensters beeinflussen :laughing::lol::wink:

Oh Mann, da hast Du gleich drei Fehler gefunden :confused: Hoffentlich waren das alle :wink: * place_of_worship gibt es nicht als tag, richtig wäre amenity=place_of_worship (Arrrrgh!) * Das -Problem war zum Glück schnell gelöst :slight_smile: * ich hatte die API falsch verstanden, er akzeptiert nur eine Bedingung, bei mehreren nimmt er die letzte. Beim gleichen Typ kann man die Anfragen kombinieren (z.B: amenity=bank|atm). Um mehrere verschiedene Tags zuzulassen (mit logischer ODER-Verknüpfung) müsste eine Schleife im Skript ausreichen, mit der UND-Verknüpfung wird’s komplizierter. Mal schauen.

Oh. Da habe ich ehrlich gesagt keine Ahnung… Eventuell werde ich wegen der Möglichkeit verschiedene Bedingungen anzugeben auch nochmal die Syntax verändern, ich setzt gleich mal eine entsprechende Warnung ins Wiki. Grüße, Tobi-Wan

Hallo Zapfen! Sorry, hatte Dein Post gestern übersehen :open_mouth:

stimmt nicht ganz, das war eher Zufall. Wenn man halt meint, nach amenity=place_of_worship UND religion=christian zu suchen, bekommt man nur christliche Andachtsstetten. Dies liegt aber daran, dass eigentlich nur Andachtsstetten das Tag “religion” tragen (eine Ausnahme wäre vielleicht ein christlicher Buchladen…). Gleicher Effekt, aber andere Ursache :wink:

Ja, ist in Planung (sowohl UND als auch ODER). Muss mir nur noch überlegen, wie ich das sinnvoll mache. Weder die Anwendung noch die Programmierung sollte zu aufwändig sein… Für mehrere values eines gleichen tags funktioniert zumindest das OR schon, siehe das aktuelle Beispiel auf der Seite. Leider geht das nicht für verschiedene Schlüssel (amenity/shop). Aber es gibt ein paar Neuerungen: * Anzeige der WPs auf der Karte * CSV-Trennzeichen wählbar (sinnvoll ist “,” für OpenOffice, “;” für Excel) * GPX-Type wählbar (manche GPSr zeigen dann die entsprechenden Symbole an * Die Formularelemente sind ein bisschen übersichtlicher angeordnet (schön ist’s aber immer noch nicht :roll_eyes:) Grüße, Tobi-Wan