hallo und guten Abend,
Update; vorweg: dieses Posting ist etwas lang - ich werde auf Anraten von mehreren Usern hier mal eine persönl. Seite hier anlegen: "solche länglichen technischen Darstellungen eine private OSM-Wiki-Seite: http://wiki.openstreetmap.org/wiki/User:tagtheworld "
Das kommt in den nächsten Tagen. ] Dort kommt dann genau rein was ich schon gemacht hab und was ich will.
ich habe bisher immer meine Daten in CSV-Dateien hinterlegt: dabei habe ich mit folgenden Tools gearbeitet.
osmconvert und
osmfilter
immer wieder wird mir gesagt ich sollte doch auf Postgis setzen - weg von dem “Low-Level-Processing.”
Eigentlich - denke ich, ist mir das Thema etwas zu groß für das was ich mache. Deshalb hatte ich eine andere Überlegung und nun wollte ich Euch fragen, ob es gewisse Grundlagen dafür gibt. Was mache ich in der Regel: In der Regel frage ich in den OSM-Daten nur bestimmte POI ab erstelle daraus eine Liste - und wenn es hoch kommt (in einem von 50 Fällen) mache ich daraus eine thematische Karte. In der einfachsten Anwendung wären das also lediglich POIs und einen Überblick darauf. Sehr gern will ich diese Daten dann immer aktuell halten. Also updates haben.
Denke dass es nicht die beste aller Optionen ist dafür mit CSV basierten calc-listen zu arbeiten - sondern ggf doch etwas angemessener ist mit mysql zu arbeiten. Meine Überlegungen gehen also nun dahin diese Daten lediglich in einer CSV vorzuhalten sondern in einer mySQL-Datenbank.
Was ich bisher gemacht habe; ich habe z.B. nach Restaurants geschaut mit den folgenden tags:
@id @lon @lat amenity name adress [as town, street, housnumber] website und mailadress.
Aufs Ganze gesehen interessiert mich nur die REGION Deutschland - bzw. die Bundesländer vgl. http://download.geofabrik.de/europe/germany.html
Dort sind es die Files von ca. 10 MB (Bremen) bis zu etwa 390 MB (Nordrhein Westfalen) - wie man sieht sind diese osm.pbf-files noch nicht sehr groß - oder was meint ihr denn;
**Haupt-Frage: ** welche Methode ist denn hier die beste? - Die Ergebnisse in einer mysql-db zu speichern oder sie in Calc-sheets speichern (mit csv Daten)1
Gearbeitet hab ich mit dem folgenden Toolset:
- osmfilter
- osmconvert
** ein Bspl: **
./osmconvert ein file aus deutschland ....osm --all-to-nodes --csv="@id @lon @lat amenity name" --out-csv -o=outfile.csv
und dann
grep cafe outfile.csv > cafes.csv
grep restaurant outfile.csv > restaurants.csv
cat cafes.csv restaurants.csv > cafes_and_restaurants.csv
b. auf der anderern Hand koennte ich das ggf. auch so machen: use overpass-api:
<query type="node">
<has-kv k="place" v="city"/>
<has-kv k="name" v="any town "/>
</query>
<query type="node">
<around radius="1000"/>
<has-kv k="shop"/>
</query>
<print/>
Frage -: welcher Weg ist denn der (efffizienteste) aller Wege!? - Besonders im Hinblick auf die Frage einer Nachhaltigkeit.
b. - die overpass-api-methode die ein XML-file (mehr oder weniger gross erzeugt )
Ein XML file welches ich von dem Overpass-Api ergeugt haben wollte braucht dann das load in eine mysql datenbank.
also - ich koennte ein LOAD XML LOCAL INFILE ‘/home/jay/Downloads/interpreter1’ into table jayDB.xml1 (id);
… und die DATEN dann anbieteen - mit XML SIMPLE ,
<osm version="0.6" generator="Overpass API">
<note>
The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.
</note>
<meta osm_base="2013-03-07T14:54:02Z" areas="2013-03-07T10:37:02Z"/>
<node id="240486180" lat="50.9744274" lon="3.0152858">
<tag k="addr:housenumber" v="9"/>
<tag k="addr:street" v="Marktplaats"/>
<tag k="amenity" v="cafe"/>
<tag k="email" v="vandaelekoen67@skynet.be"/>
<tag k="name" v="Paviljoentje"/>
<tag k="opening_hours" v="Mo-Su 09:00+; Tu off; Th 09:00-14:00"/>
<tag k="phone" v="+3251636211"/>
<tag k="website" v="http://www.paviljoentjestaden.be"/>
</node>
<node id="244312208" lat="51.2461401" lon="5.4390455">
<tag k="amenity" v="cafe"/>
<tag k="created_by" v="JOSM"/>
<tag k="name" v="De Club"/>
</node>
Es geht also um eine Methodenfrage: gibt es eine Methode die Abfrage so zu machen dass ich die diffs in einer Mysql db erhalte - und so eine nachhaltige Methode habe? Soll ich hier für Mysql einsetzen oder doch gleich PostGis - denke mal dass ich für POI alleine die PostGis nicht brauche!?!
Freu mich auf Tipps u. eine lebendige Diskussion
tagtheworld
Update 2. Anm zu Loesungen: **Ideen ** habe ich bekommen - etwa hier: A self-updating OpenStreetMap database of US bridges – a step-by-step guide. http://oegeo.wordpress.com/2012/03/06/a-self-updating-openstreetmap-database-of-us-bridges-a-step-by-step-guide/ I want all bridges in the US that are mapped in OpenStreetMap in a PostGIS database. There are about 125,000 …
Das trifft es - ziemlich genau sogar - was ich machen will. Ebenso das untere Beispiel hier aus dem Forum.
OSM-Poi → mySQL-Datenbank … ?
http://forum.openstreetmap.org/viewtopic.php?pid=251053#p251053
Das alles kommt demnächst in die private OSM-Wiki-Seite: http://wiki.openstreetmap.org/wiki/User:tagtheworld