OSM POIs im Umkreis anzeigen mit eigener priv. Webseite für Smartphone

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.

http://www.umkreisapp.de

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? :roll_eyes:

Danke für eure Hilfe!

Andreas

Hallo Andreas,

herzlich willkommen bei OpenStreetMap.

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

Grüße
Joachim

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 :slight_smile:
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 …”?

Ist keine einfache Materie.

Danke!

Gruß
Andreas

Die Angabe der Lizenz muss nicht auf der Hauptseite sein, nur das Openstreetmap Mitwirkende. Die Lizenz kannst du ins Impressum tun.

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

Hallo Andreas,

z.B. ein Spielplatz oder eine Kirche (Information am Gebäude)
http://www.openstreetmap.org/way/26229973
http://www.openstreetmap.org/way/25092439

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.

  1. 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
  1. 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.
osmfilter germany.o5m --keep="amenity" -o=germany_amenity.o5m
  1. Umwandeln der Flächen-Amenities in Knoten (ein paar Sekunden)
osmconvert germany_amenity.o5m --all-to-nodes -o=germany_amenity_nodes.o5m

4.Die einzelnen Tags herausfilten (ein paar Sekunden)

osmfilter germany_amenity_nodes.o5m --keep="amenity=bank" -o=banken.osm
osmfilter germany_amenity_nodes.o5m --keep="amenity=atm or atm=yes" -o=geldautomaten.osm
osmfilter germany_amenity_nodes.o5m --keep="amenity=fuel" -o=tankstellen.osm

Viel Erfolg
Joachim

Moin !

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.

http://www.tappenbeck.net/osm/maps/deu/mobile2013.php?id=9514&zoom=17&lat=53.85544&lon=10.66724

Auflistung und Navigation gutes Feature.

Aber ich vermisse objektbezogene Daten Opening, Phone etc.)

Jan :slight_smile:

Hallo Joachim,
danke für deine Mühe, wenn wieder etwas Zeit ist probiere ich mal herum mit osmfilter & Co.
Man lernt ja nie aus.

Gruß
Andreas

Guten Abend Joachim,
dein Tipp war Gold wert. Vielen Dank. Es sind jetzt 1.012.551 POI drin.
Es haben ca. 300.000 Stück gefehlt.

*** freu ***

Schöne Woche!

Gruß
Andreas

Hallo Andreas,

gern geschehen. Kannst Du noch etwas zu den Laufzeiten vorher/nachher schreiben?

Grüße
Joachim

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.

Gruß
Andreas