You are not logged in.
Pages: 1
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 :-)
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
Meine Überlegungen gehen nun dahin diese Daten nicht mehr in einer CSV vorzuhalten sondern in einer mySQL-Datenbank auf meinem Webspace.
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
Offline
Lübeck wrote:Meine Überlegungen gehen nun dahin diese Daten nicht mehr in einer CSV vorzuhalten sondern in einer mySQL-Datenbank auf meinem Webspace.
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-
Last edited by wambacher (2012-06-25 04:09:21)
Offline
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 :-)
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
Lübeck wrote:Meine Überlegungen gehen nun dahin diese Daten nicht mehr in einer CSV vorzuhalten sondern in einer mySQL-Datenbank auf meinem Webspace.
such dir einen Provider, der Postgresql+PostGIS anbietet.
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.
Offline
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
Offline
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.
Offline
kurz und bündig - es gibt auch wichtigere Dinge im Leben!
ok, muss auch mal sein. sorry, werde mich demnächst geduldiger zeigen.
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.
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.
Offline
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 :-)
[1] http://forum.openstreetmap.org/viewtopic.php?id=14630
Last edited by Lübeck (2012-06-25 10:41:44)
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
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.
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.
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.
Irgendwo bei OSM? nee, kannste vergessen. Die tun sich das nicht an.
@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.
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
Offline
Ich hab das bei mir so laufen, weil ich MySQL schon für andere Dinge brauchte und nicht umsteigen konnte/wollte.
Klar, das ist absolut nachvollziehbar. Allerdings fängt Jan gerade erst an und dafür sollte er schon auf den "richtigen Zug" springen.
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.
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 ![]()
Und ich würde mich nicht wundern, wenn da noch ne kleine MySQL rumnudelt wie bei mir, weil Joomla! MySQL braucht.
Gruss
Walter
Offline
Der Vorteil einer mySQL wäre auch für kleine Projekte eine DB mit entsprechendem Interface aufzubauen um Daten zu erfassen.
Du kennst beide nicht, ich benutze beide - that's the difference.
Aber es ist deine Entscheidung mit der du leben musst.
Gruss
walter
Offline
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 :-)
Last edited by Lübeck (2012-06-25 12:07:06)
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
Jan,
dieses "wie" ist vielleicht zu naheliegend: http://wiki.openstreetmap.org/wiki/Osmo … .28--wm.29
LG,
-moenk
YAPIS - denn Punkte sind nicht nur für die Statistik.
Offline
dieses "wie" ist vielleicht zu naheliegend: http://wiki.openstreetmap.org/wiki/Osmo … .28--wm.29
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
Offline
Ich nehme an, dass du das ganze @Home oder @Firma macht, gell?
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 ![]()
Nun wieder zurück zu meiner Frage - wie die mySQL am einfachsten füttern?
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
Offline
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.
Mein derzeitiger webhoster hat phpPgAdmin und phpMyAdmin installiert. damit geht ein import CSV nach mysql UND postgresql mit einem Klick.
Gruss
walter
Offline
Du musst ja sowieso schon massig Skripte rumliegen haben, die csv-Dateien erzeugen.
Glaubst Du vielleicht - ein Skript für die Daten-Downloads und eines für die POI-Karten. Configuration ist alles.
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.
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 :-)
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
maxbe wrote:Du musst ja sowieso schon massig Skripte rumliegen haben, die csv-Dateien erzeugen.
Glaubst Du vielleicht - ein Skript für die Daten-Downloads und eines für die POI-Karten. Configuration ist alles.
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.
Offline
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
Android 2.2 & 4.1.1 / Webkit 3.1 / PC: Win7 64bit
Offline
Hallo Jan,
auch wenn es etwas spät ist, will ich meinen Senf anfügen. Zunächst: Die Idee mit einer vernünftigen Datenbank ist auf alle Fälle gut und sehr vernünftig. Trotzdem gibt es natürlich Alternativen für spezielle Fälle.
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.
Mache ich häufig, klappt recht flott mit osmconvert und der Option "--all-to-nodes" (es werden dann sogar Relationen umgewandelt).
Meine Überlegungen gehen nun dahin diese Daten nicht mehr in einer CSV vorzuhalten sondern in einer mySQL-Datenbank auf meinem Webspace.
Guter Plan.
In einem ersten Schritt müßten alle erforderlichen Daten für den Wirkungsbereich durchgearbeitet werden und die Daten in tabelleform abgebildert werden.
Klappt auch mit osmconvert und der neuen Option "--csv=", siehe http://wiki.openstreetmap.org/wiki/DE:O … SV-Dateien
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.
Ja, sie macht das so. Genauso läuft es auch bei der openptmap.org und der openfiremap.org. Details hier: https://wiki.openstreetmap.org/wiki/Ope … _Rendering
Aber - wie gesagt - das ist nur eine Möglichkeit an das Problem heranzugehen. Es gibt da mehrere verschiedene gute Wege.
Offline
Mache ich häufig, klappt recht flott mit osmconvert und der Option "--all-to-nodes" (es werden dann sogar Relationen umgewandelt).
Vielen Dank für Deine Tools. Die sind echt super! Insbesondere die --all-to-nodes-Funktion erleichert einiges.
Wenn ich das richtig sehe, muß ich drei Aufrufe verwenden, um aus einem Planet bzw. Extrakt die POI-Datei zu generieren.
osmconvert mit --all-to-nodes
osmfilter um nach bestimmten Tags zu filtern
wieder osmconvert, diesmal mit --out-csv
Oder geht das auch einfacher?
Ist eigentlich mal geplant Deine Programme zusammenzulegen? Oder willst Du bewußt die verschiedenen Funktionen in separaten Programmen haben?
Christian
Offline
Wenn ich das richtig sehe, muß ich drei Aufrufe verwenden, um aus einem Planet bzw. Extrakt die POI-Datei zu generieren.
1 osmconvert mit --all-to-nodes
2 osmfilter um nach bestimmten Tags zu filtern
3 wieder osmconvert, diesmal mit --out-csv
Oder geht das auch einfacher?Ist eigentlich mal geplant Deine Programme zusammenzulegen? Oder willst Du bewußt die verschiedenen Funktionen in separaten Programmen haben?
Hallo Christian
Bin zwar nicht Marqqs, aber ich denke, das hat durchaus Sinn dies als getrennte Programme zu haben.
1 osmconvert: Unterstützt sehr viele Formate, kann einfacher Filterungen.
2 osmfilter: Komplexe Filterungen, wenige Formate
3 osmupdate: Kann OSM-Datei per Diff aktuell halten.
Wenn man das alles in ein Programm packen wollte, würde ein komplexes, schwieriger zu wartendes Programm entstehen. Dann schlägt man sich als Anwender eventuell mit Problemen rum, die kaum etwas mit der eigenen Aufgabenstellung zu tun hat. Die Methode "Eine Aufgabe - ein Programm" hat schon ihre Vorzüge.
Edbert (EvanE)
Offline
Bin zwar nicht Marqqs, aber ich denke, das hat durchaus Sinn dies als getrennte Programme zu haben.
Danke, hätte es auch nicht besser schreiben können. :-)
Wenn ich das richtig sehe, muß ich drei Aufrufe verwenden, um aus einem Planet bzw. Extrakt die POI-Datei zu generieren.
1 osmconvert mit --all-to-nodes
2 osmfilter um nach bestimmten Tags zu filtern
3 wieder osmconvert, diesmal mit --out-csv
Oder geht das auch einfacher?Ist eigentlich mal geplant Deine Programme zusammenzulegen? Oder willst Du bewußt die verschiedenen Funktionen in separaten Programmen haben?
Ich glaub nicht, dass es einfacher geht. Außer, du nimmst Osmosis mit entsprechenden Plugins, dann tut es wahrscheinlich auch ein einziger Aufruf. Allerdings ist der dann eine Ecke komplizierter, und die Verarbeitung wahrscheinlich einiges langsamer als bei den einzelnen Programmen. Hat halt alles zwei Seiten.
Deine Reihenfolge ist ok. Bisher hab ich es aber immer so gemacht:
1 osmconvert, um die Daten ins .o5m-Format zu wandeln (idealerweise sind sie aber schon in diesem Format)
2 osmfilter um nach bestimmten Tags zu filtern
3 wieder osmconvert, diesmal mit --all-to-nodes und --out-csv
Mein Weg ist nicht einfacher, sondern einfach nur anders. :-) Einfacher wirds nur, wenn du deine Eingangs-Daten generell im .o5m-Format hast und z.B. mit osmupdate aktualisierst, denn das unterstützt .o5m.
Offline
Da fällt mir gleich eine Frage ein:
Bedingt durch die Lizenzumstellung gibt es ja gelöschte Knoten, die keine Koordinaten haben. Sind deine Programme von dieser Änderung der Datenstruktur betroffen?
Oder anders gefragt:
Hast du in den Input-Daten überhaupt gelöschte Objekte? In einem Change-File könnte das ja durchaus vorkommen.
Edbert (EvanE)
Offline
Pages: 1