OSM-Poi -> mySQL-Datenbank ... ?

Moin !

ich habe bisher immer meine Daten in CSV-Dateien hinterlegt und immer wieder wird mir durch die Blume gesagt ich solle mir doch einen GisServer anlegen.

Dafür fehlt mir leider die nötige Hardware und auch ansonsten 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 und mache daraus eine thematische Karte. In der einfachsten Anwendung wären das nur Nodes und bei Flächen wird ein Punkt generiert der dann die Daten bekommt - quasi eine Flächen->Node-Konvertierung.

Meine Überlegungen gehen nun dahin diese Daten nicht mehr in einer CSV vorzuhalten sondern in einer mySQL-Datenbank auf meinem Webspace.

In einem ersten Schritt müßten alle erforderlichen Daten für den Wirkungsbereich durchgearbeitet werden und die Daten in tabelleform abgebildert werden. Dann ab damit in die Datenbank.

Dann stellt sich die Frage des Update - entweder wird im Intervall X die DB gelöscht oder es wird immer nur eine Differenz eingespielt wobei neue Daten ergänzt und alte entfernt werden. So ähnlich macht glaube ich das die Wanderkarte von Sarah.

Bei dem Update wird sicherlich das Differenzfile verwendet und abgearbeitet das auch für die GisServer verwendet wird. Hierbei wäre allerdings zu bedenken das der Rechner, der die Auswertung betreibt, nicht permanent im Netz hängt und daher kleinere und größere Datenintervalle verarbeitet werden müssen.

Bevor ich das Thema weiterspinne jetzt die Frage an Euch - gibt es soetwas schon ?? oder hat einer Gedanken die ich vielleicht hier nicht niedergeschrieben habe ?

Gruß Jan :slight_smile:

such dir einen Provider, der Postgresql+PostGIS anbietet. Damit bist du langfristig auf der sicheren Seite.
Kleinigkeiten gehen natürlich auch mit MySql aber irgendwann ist dann Schluß. Alle in OSM benutzten Programme verwenden Postgresql. Alle Scripts, Dokus, … bauen darauf auf.
OSM-Support ist auch dicke gegeben.

Gruss
Walter

kein Interesse? Keine Meinung? mit meiner Antwort unzufrieden?
oder einfach zu faul zu antworten?

schade. war dann wohl meine letzte Antwort auf irgendeine Frage von dir (ja, ich nehme so ein Verhalten persönlich!).

ich habe übrigens inzwischen einen kostenlosen postgresql-Server bei einem free-hoster. Danke dafür, dass du mich auf die Idee gebracht hast.

-w-

Moin !

kurz und bündig - es gibt auch wichtigere Dinge im Leben!

Wenn Du Dich geknickt fühlst, ich kann es nicht ändern. Trotzdem danke für den Hinweis - insbesondere den letzten auf den freien Server.

Derzeit gebe ich ca. 4 Euro im Monat bei 1und1 aus und mehr ist derzeit auch nicht drin. Ansonsten kosten diese Pakete sicherlich >20 Euro (so meine Gedanken) und das wäre nicht drin.

Gruß Jan :slight_smile:

Ich stehe genau am gleichen Punkt wie Lübeck, Webspace mit MySQL ist vorhanden, Postgresql+PostGIS jedoch nicht. Eine Provider dafür zu suchen ist zumindest in der Schweiz ein Ding der Unmöglichkeit, so etwas auf einem Webspace selber aufzusetzen, ist hoffnungslos kompliziert. Dein Tipp ist somit praktisch nutzlos.

IMO die einzige Lösung wäre eine Proxy-DB auf Basis von MySQL, zumindest wenn es nur um POI’s geht. Aber scheinbar hat einfach niemand ein Interesse daran, obwohl genau das die ODM-DB ziemlich entlasten würde.

@Lübeck: Ich sehe für dich nur die Lösung die POI-Daten statt in einem CSV-Datei in einer eigenen DB abzulegen und von dort zu lesen. Ich weiss nicht, ob dies von OpenLayers irgendwie unterstützt wird, wahrscheinlich eher nicht. Frag doch mal dort an, ob es Unterstützung gibt.

Einfache POIs mit OpenLayers aus MySQL zu ziehen geht schon, da kann man sich ja einfach ein PHP-Skript tippen, das MySQL fragt und dann CSV o.ä. ausgibt, muss man ja bei Posgres auch. Kompliziertere Sachen gehen auch (wenn man hier auf “Karte erstellen” klickt, kommt alles aus MySQL, einschliesslich der Shapefiles für die Grenzen, der Farben und der “POIs” der Städte). Ich hab das bei mir so laufen, weil ich MySQL schon für andere Dinge brauchte und nicht umsteigen konnte/wollte.

Inzwischen hab ich auch Postgres, weil da mehr Unterstützung durch andere Entwickler da ist. Informationsbeschaffung über Diff-Einspielen, Rendern… ist kein grosses Problem, wenn man Google und Wikisuche bedienen kann. Zur Strafe muss ich mich jetzt um zwei Datenbanken kümmern. Also falls es irgendwie geht, würde ich mir gleich postgres installieren.

Grüße, Max

Naja das Problem wird schlichtweg irgendwann die Performance. Postgree+PostGIS ist eine ausgewachsene Spatial-Datenbank, die gut getestet ist und jede Menge Features, Schnittstellen und Tools bietet. MySQL hat glaube ich auch eine Erweiterung für Raumbezug, aber die hat da wohl nicht den großen support.
Lirum Larum, es ist sicherlich eine bessere Lösung als CSV und vielleicht der nächste sinnvolle Schritt, bis irgendwann Geld für einen eigenen großen Server hast.

ok, muss auch mal sein. sorry, werde mich demnächst geduldiger zeigen.

Bei “meinem” webspace-Anbieter bplaced , den ich gerade teste, kosten 2Gb incl MySql+Postqresql nix und 4Gb + einige Goddies 3€/Monat.

Knackpunkte:

  • kein PostGIS - versuche ich gerade zu klären oder einen anderen Anbieter zu finden.
  • Platzt reicht nicht aus, um eine “echte” Osm-DB aufzusetzen, aber das hast du vorerst eh nicht vor. (*)
  • Java (für osmosis) muss ich checken

Dennoch würde ich alle Datenbank-Sachen auf postgresql aufsetzen, weil das langfristig gesehen für dich der Weg ist, den du eh gehen wirst/musst. Dann schlägst du dich nicht mit 2 unterschiedlichen Produkten rum.

Gruss
Walter

*) in dem 3€-Paket ist die Vernetzung von Datenbanken möglich. Damit möchte ich versuchen, manche Tabellen von meinem grossen OSM-Server (germany) hochzujagen, da ich diesen lokalen Server nicht 24 Stunden online lassen möchte. Wenn mir das gelingt, hat der externe Server nur das Notwendigste in der DB und braucht damit weniger Platz. Mal sehen.

hi !

Brogo hatte zur Kartenanbindung mit OpenLayers schon einmal ein Posting [1].

Aber es geht nicht immer nur um Karten - Liste und andere Dinge könnten so einfacher zu realisieren sein.

Danke für das Verständnis nicht immer nur das hochtrabende zu bauen auf Basis einer PostgreSQL…

Der Vorteil einer mySQL wäre auch für kleine Projekte eine DB mit entsprechendem Interface aufzubauen um Daten zu erfassen.

Gruß Jan :slight_smile:

[1] http://forum.openstreetmap.org/viewtopic.php?id=14630

Ich bin mir nicht ganz sicher, was du hier mit “Provider” meinst; ich habe auf jeden Fall die ganze Zeit einen “Webspace-Anbieter mit Postgresql” gemeint - und dabei bist du nicht an deine Landesgrenzen gebunden.

Irgendwo bei OSM? nee, kannste vergessen. Die tun sich das nicht an.

Das ist nicht die Aufgabe von OL sondern der DB - und beide können das.

Der Weg CSV → DB ist eh unstrittig. Das ist für Jan der richtige Weg.

Gruss
Walter

Klar, das ist absolut nachvollziehbar. Allerdings fängt Jan gerade erst an und dafür sollte er schon auf den “richtigen Zug” springen.

Ich nehme an, dass du das ganze @Home oder @Firma macht, gell?

Das ist aber noch steigerungsfähig: ein Kollege von uns (aighes?) fährt zwei Postgres-Datenbanken. Eine (osm2pgsql) zum Rendern und eine (osmosis simple/snapshot) für andere Sachen :sunglasses:
Und ich würde mich nicht wundern, wenn da noch ne kleine MySQL rumnudelt wie bei mir, weil Joomla! MySQL braucht.

Gruss
Walter

Du kennst beide nicht, ich benutze beide - that’s the difference.

Aber es ist deine Entscheidung mit der du leben musst.

Gruss
walter

Hi !

mit mySQL habe ich schon gearbeitet.

Wenn Du Kartenprojekte mit mySQL verbindest und diese mal weitergeben willst, dann sind diese offener diese zu verwenden als PostGIS mit aufzunehmen… ggf. einen anderen Provider zu suchen.

mySQL ist bald überall vorhanden die mit Frameworks (Wordpress, Joombla etc.) arbeiten.

Nun wieder zurück zu meiner Frage - wie die mySQL am einfachsten füttern ?

Gruß Jan :slight_smile:

Jan,

dieses “wie” ist vielleicht zu naheliegend: http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage_0.40#–write-mysql_.28–wm.29

LG,

-moenk

Damit wird nicht weit kommen. Praktisch jeder Webhoster hat, aus Sicherheitsgründen, den externen Zugriff auf die SQL-Datenbanken blockiert. Daß heißt, er müßte also *osmosis *auf dem Webserver ausführen; und daß das mit den normalen kleinen Webhosting-Paketen möglich ist, halte ich für unwahrscheinlich.

Christian

Auf einem vServer der 20-Euro-Klasse. Aber der wird noch für anderes Zeug gebraucht, nicht nur für OSM. @Home kostet mir das Diff-Einspielen zu viel von meiner ärmlichen Bandbreite, und in der Arbeit laufe ich vor Datenbanken schnell weg, wenn ich sie rechtzeitig erkenne. Ich mag DBs eigentlich nicht :wink:

Du musst ja sowieso schon massig Skripte rumliegen haben, die csv-Dateien erzeugen. Die kannst Du ja einfach umschreiben und statt “print lon,lat,name” ein “insert into poiliste (lon,lat,name) values (…,…,…)” machen.

Für ein paar 1000 Pois ist “Pois laden → Liste in der DB löschen → Liste neue aufbauen” sicher das einfachste und in ein paar Sekunden erledigt. Wenn Du grosse Datenmengen hast, ständig aktuell und ohne Ausfallzeit sein willst, wirds vermutlich kompliziert. Aber nur für Dich. Wenn Du sauber dokumentierst und Deine Programme veröffentlichst, habens Deine Nachfolger später leicht.

Grüße, Max

Mein derzeitiger webhoster hat phpPgAdmin und phpMyAdmin installiert. damit geht ein import CSV nach mysql UND postgresql mit einem Klick.

Gruss
walter

Glaubst Du vielleicht - ein Skript für die Daten-Downloads und eines für die POI-Karten. Configuration ist alles.

Das ist alles noch etwas mehr als dirty und der Perl-Kern ist ein noch unveröffentlichtes Perl-Paket…

Irgendwann mal wenn mehr zeit ist soll es “hübscher” und weitergebbar sein.

Gruß Jan :slight_smile:

Um so besser: Eine Zeile fürs Einfügen des Datensatzes in irgendeinSQL statt fürs Schreiben einer csv-Zeile, drei Zeilen am Anfang fürs Öffnen der Datenbank und Löschen der alten Werte und eine Zeile am Ende fürs Schliessen derselben.

Aber eben noch nicht weitergabefähig zumal ich an einer entscheidenden stelle noch eine Großbaustelle habe - mal sehen wann ich Lust und Zeit habe!
Jan