Ich habe eine frei nutzbare Webanwendung geschrieben, in welcher man POIs im Umkreis nach Kategorie geordnet anzeigen lassen kann. Eigentlich ganz schlank programmiert für Smartphone, Tabletts, auch für PC Browser. Dazu gibt es sogar eine StartApp im Google Playstore unter umkreisapp für ein vernünftiges Icon.
Nun habe ich sorge mit der Anzeige von z.B. Geschätsnamen also Edeka, KAISERS, Shell, Aral …
Brauche ich die Zustimmung von allen? Oder ist das öffentliches Gut?
Habe ich mich strafbar gemacht?
Rechtlich gesehen hast Du (fast) alles richtig gemacht. Die Daten werden von OpenStreetMap unter der ODbL veröffentlicht. Eine OpenStreetMap Public License, wie von Dir angegeben, gibt es nicht. Du musst nur noch die korrekte Lizenz angeben und verlinken. Eine Einwilligung der Geschäftsinhaber ist nicht erforderlich und wird selbst von uns nicht eingeholt.
Bei den POIs zeigt Deine App leider nur die Nodes an. Die als geschlossener Way flächenhaft gemappten Objekte fehlen. Abhilfe schafft hier eine Umwandlung mit http://wiki.openstreetmap.org/wiki/DE:Osmconvert (–all-to-nodes).
Bei den Geldautomaten musst Du zusätzlich noch bei den Bankfilialen nachschauen: amenity=bank und atm=yes
Hallo Joachim,
vielen lieben Dank für die schnelle und vor allem hilfreiche Antwort. Habe das mit der Lizenz korrigiert.
Für den POI Export nutze ich OSMOSIS z.B.
z.B. osmosis --rx Germany.osm --tf accept-nodes amenity=fuel --tf reject-ways --tf reject-relations --wx fuel.osm
und eine Menge an Rechenkapazität
Damit extrahiere ich mir z.B. die Tankstellen heraus! Hat ein Weilchen gedauert bis ich überhaupt soetwas hinbekommen habe.
Habe ich in dem OSMOSIS Befehl schon den grundlegenden Fehler gemacht?
Das Osmconvert schaue ich mir noch genau an.
Was sind “… flächenhaft gemappte Objekte …”?
Es gibt die Möglichkeit einen Punkt einzufügen und daran die Informationen zu heften. Tankstelle Supermarkt oder was auch immer. Die meisten Objekte sind in der Relatität aber eigentlich nicht nur Punkte. Sondern zum Beispiel Häuser welche im Grundriss eine Fläche darstellen.
Das kann man in OSM auch abbilden in dem man einen geschlossenen(endet dort wo er begonnen wurde) Weg zeichenet und dann statt einem einzelnen Punkt die Attribute an den Weg schreibt. Damit entsteht dann eine Tankstelle auf einer Fläche oder ein Supermarkt ist im ganzen Haus.
Wenn du jetzt in deinen Abfragen nur Punkte mit bestimmten Eigenschaften suchst, wirst du diese Objekte nicht finden, da die Information darüber nicht an den Punkten sondern an den Wegen gespeichert wird.
Noch komplizierter wird es, wenn man aus mehreren Wegen mit einer Relation eine solche Fläche erstellt. Sogenannte Multipolygone. Dort steckt die Information dann in der Relation und einzelne Wege ergeben für sich genommen nicht immer eine Fläche. Außerdem …
Um das ganze abzukürzen, in osmconvert besitzt dafür extra eine Funktion: http://wiki.openstreetmap.org/wiki/DE:Osmconvert#Wege_und_Relationen_entfernen_und_in_Knoten_umwandeln
Ja, denn Du wirfst mit den reject-Befehlen alle Wege und Relationen weg, in denen sich auch POI-Informationen befinden können. Die nächsten Performance-Fehler sind, dass Du gleich zu Beginn der Verarbeitungskette mit dem unkomprimierten OSM-Format arbeitest und für jede POI-Art den Gesamtdatenbestand immer wieder von vorne durchsuchst. Wenn Lesen und Schreiben dann auch noch auf einer gemeinsamen herkömmlichen Festplatte erfolgen, dann ist der Schreib-/Lesekopf nur noch am hin- und herspringen und es dauert ewig.
Ich kenne Osmosis nicht besonders gut und verwende eine Kombination aus Osmconvert und Osmfilter, was für Deinen Zweck ausreichend sein dürfte.
Umwandeln des PBF-Formates in das durch Osmfilter performant verarbeitbare O5M-Format (ca. 110 Sekunden auf SSD)
osmconvert germany-latest.osm.pbf -o=germany.o5m
Herausfiltern der für Dich notwendigen Objekte nach den Schlüsseln (60 Sek.) Für die anderen benötigten Schlüssel (tourism, leisure, historic, shop, …) analog. Durch die Aufteilung in Schlüssel wird verhindert, dass die erzeugten Dateien für den nächsten Schritt zu groß sind. Wenn von einem Schlüssel nur wenige Tags benötigt werden (z.B. Friedhöfe), dann kannst Du mit --keep=“landuse=cemetery …” gleich weiter einschränken.
auf den ersten Blick ganz gut. Soetwas ähnliches habe ich mit aktuellen Daten und der Overpass gemacht und damit immer aktuell - allerdings auch (noch) ohne Flächenauswertung.
Guten Abend,
mit Laufzeiten meinst du sicherlich die Abfrage der mySQL Datenbank, also Button drücken und wann erscheint das Ergebnis für den Nutzer. Also ehrlich gesagt habe ich keinen Unterschied gemerkt.
Es sind jetzt gut 1.012.559 Nodes in der POI Tabelle. Vorher waren es 750.000 Stück.