Mehrere Poly verbinden...

Hallo,

ich möchte für einen Teil von BaWü meine eigenen Tiles erstellen. :slight_smile:
Dazu hab ich mir einige Landkreis-Polys besorgt (http://www.odbl.de/boundaries/).
Mit diesen erstelle ich mir via Osmconvert die .osm für die entsprecheneden Landkreise und füge dann alle in Maperitive ein.
Damit generiere ich dann die entsprechenden Tiles.

Passt alles soweit…

Ist es jetzt aber möglich, sämtliche Polys zusammenzufassen?
So das die sich überschneidenenden Punkte entfernt und alle Landkreise zu einem großen Poly zusammengefasst werden?

Damit wäre es mir möglich, um die eigenen Tiles eine Polyline einzufügen bzw die Karte in Richtung (http://gis.no.de/#!/map/kreis-sb) zu gestalten.

Mit besten Grüßen
Wayne

Aber sicher doch. Mit osm2poly.pl und poly2osm.pl kannst du die Teile umwandeln, und in josm nachbearbeiten:
http://svn.openstreetmap.org/applications/utils/osm-extract/polygons/

Anleitung gibts hier:
http://wiki.openstreetmap.org/wiki/User:Geo-francis

… und natürlich kannst du die polys auch in jedem Texteditor manipulieren.

Gruß,
ajoessen

Das ist ja meine Karte :slight_smile:

Ein paar infos dazu: Mit einem einfachen OSM Polyfile und dem Ausschneiden der OSM Daten mit osmosis oder osmconvert ist es noch nicht getan um die Karte so gestalten zu können. Ich Grunde habe ich gar kein Poly genommen zum Ausschneiden, sondern genau das Landkreis Polygon aus den OSM Daten.

Allerdings habe ich das nicht benutzt um mit osmconvert das Gebiet auszuschneiden (in der DB habe ich meine ganze Region Saar-Lor-Lux), sondern um die Flächen und Wege exakt an der Grenze Auszuschneiden, d.h. z.B ein Waldpolygon oder ein See wird dann genau mit dem Grenzpolygon abgeschnitten.

Das ganze geht mit den Postgis Befehlen st_intersect und st_intersection.

Ich habe mir eine batch Datei geschrieben, die das ganze automatisch macht und alle PostgreSQL so in jeweils ein eigenes Schema schreibt. Ich mache das mit ca. 10 Städten und Kreisen. Nach dem täglichen Update der OSM DB läuft das script und erstellt automatisch die Tabellen für das jeweilige Grenzpolygon. Das Grenzpolygon kann man auch noch mit den PostGIS Befehlen st_buffer und st_simplify an die eigenen Wünsche Anpassen, evt. will man ja nicht exact die Grenze sondern vielleicht einen Puffer von 1000 Meter oder was auch immer.

Noch was zum DB Schema: ich verwende nicht osm2pgsql sondern imposm, die gestaltung der Karte erfolgt in Tilemill und der Tileserver ist Tilestream, beides von MapBox, Tilemill gibt es mittlerweile für Linux, Mac und auch Windows in der Version 9.0.

Grüsse

misterboo

… sogar mit “Friedhofswegen” und Hoppsassa"!

ajoessen

:slight_smile: das hat doch jemand im anderen Thread angesprochen und mittlerweile geändert … dann muss ich auch mal die tiles neu rendern …

Naja, bei 15.000 Zeilen lässt sich das nicht mehr ganz so einfach manipulieren.
Erst recht nicht, wenn die Zeilen untereinander gar nicht dem Polyverlauf entsprechen. :rage:

Hui…
Besser kanns ja gar nicht laufen. > Gleich den Richtigen an der Hand… :stuck_out_tongue:

Darauf hätt ich auch selbst kommen können. :roll_eyes: :roll_eyes: :roll_eyes:
Schön die einzelnen Relationen laden, bearbeiten und schon hat man sein Grenzpolygon. schäm

Da ich mich bisher mit PostGIS für Win, PostgreSQL, Tilemill und Tilestream nicht auseinandergesetzt habe wirds wohl ein wenig dauern bis es hier weiter geht… :wink:

Gruß und Danke
Wayne

Holla,

mittlerweile hab ich PostGIS (pgsql/), PostgreSQL (pgsql/) und phpPgAdmin (phpPgAdmin/) auf meinem localhost (D:/xampp/) installiert. > Soweit hat alles geklappt.
Lässt sich auch problemlos mit phpPgAdmin verwalten.

Versuch ich nun aber die Datenbank für osm2pgsql (http://wiki.openstreetmap.org/wiki/DE:Mapnik#F.C3.BCr_Windows) via osmdbneu.bat anzulegen,

erhalte ich nur Fehlermeldungen:

Gruß Wayne

Wenn die Datenbank namens osmdb einmal eingerichtet ist, brauchst du diese Zeilen nicht nochmals abzuarbeiten. Nur, wenn du einen neue Datenbank mit anderem Namen anlegst.

Wenn du osm2pgsql startest, wird die Datenbank automatisch geleert. Falls du da Bedenken haben solltest…

EDIT: Wenn das nicht der Grund war, schreib erst mal nur die ersten beiden Zeilen in die batch. Der Rest sind Folgefehler.

Gruß,
ajoessen

Holla,

ja du hattest recht. > Es lag an der bereits angelegten Datenbank. :stuck_out_tongue: :stuck_out_tongue:
Die ersten beiden Zeilen haben nen Fehler ala “bereits angelegt” ausgegeben.

Nun hab ich versucht, osm2pgsql zu starten (alle Dateien befinden sich im Ordner “xampp/osm2pgsql”).

Doch leider gibts auch da nur ne Fehlermeldung:

EDIT: Hat das mit dem User mit dem Windowsanmeldenamen zu tun?

Beste Grüße und schon mal vielen Dank :slight_smile:
Wayne

Bei mir steht im Aufruf ein --username osmuser
Ich weiß nicht, welchen user er nimmt, wenn das fehlt.

BTW: Hast du den Datenbankzugriff von md5 auf trust geändert?

Gruß,
ajoessen

Das hatte ich bereits wie in der Anleitung beschrieben gemacht. :slight_smile:

Ich hab nun den Standarduser (–username postgres) verwendet.
Nun kommen wir der Sache auch einen Schritt weiter. :slight_smile:

Doch leider erhalte ich nun ne neue Fehlermeldung:

Gruß Wayne

Hast du zufälligerweise den default.style aus der osm2pgsql.zip für Windows genommen? Der ist nämlich nicht mehr aktuell, weil addr:housename dort fehlt.
Die aktuelle Version steht separat im SVN. Sollte dann im gleichen Verzeichnis stehen, oder mit Pfadangabe.

Bei mir lautet die Zeile:


osm2pgsql --create --database osmdb --username osmuser --prefix planet -s --cache 3000 -S D:\Karten\OpenStreetMap\osm2pgsql\extended.style --hstore D:\Karten\osm\osmconvert\nrw.osm

Ohne -s für slim und cachevorgabe läuft es vermutlich nicht, und --create am Anfang und --hstore kann auch nicht schaden.

Gruß,
ajoessen

Gruß,
ajoessen

Ja, ich hatte die aus dem zip genommen. > Hab sie aber durch die aktelle ersetzt. :slight_smile:

Leider bekomm ich damit die selbe Fehlermeldung.

Kann es sein, das in meiner Datenbank nicht schon was fehlt?
Da ich die Probleme ja schon beim anlegen der DB hatte…
Weder in “Schemata” noch “Slony” ist irgendwas eingetragen, also alles komplett leer.

Gruß Wayne

Möglich. Dann lösch die osmdb mal mit dem pgAdmin, und lege sie mit der batch neu an. Eventuell haben die Fehler vorher die datenbank ruiniert.

Gruß,
ajoessen

Holla Zusammen / ajoessen,

das hab ich dann glatt mal gemacht. :slight_smile:
Alles gelöscht und via osmdbneu erneut angelegt.

Es gibt einige hundert

was sich ja schon gar nicht schlecht anhört, paar

und leider auch paar

Das hat dann zur Folge, das ich beim versuchten Dateninput wiede ne kleine Fehlermeldung bekomm:

Kann mir mal jemand seine leere osmdb-DB via gzip exportieren, so das ich als Grundlage mit ner korrekt eingerichteten DB weiter experimentieren kann?

Grüße Wayne

Das passt scho. Nach dem "ist nicht definier"t kommt jeweils ein “Hüllentypdefinition wir derzeugt” auch bei mir.

Das kommt bei mir aber nicht :wink:
Stattdessen Settig up table planet_line

invalid SRID - Mag er 900913 nicht?
Schau mal im pgadmin in der datenbank osmdb unter
Schemata
public
Tabellen
spatial_ref_sys
und dann oben auf das Tabellensymbol, dann letzte Zeile:
srid: 900913
auth_name: spatialreferencing.org
auth_srid: 900913

Wenn das fehlt, kann der Import nichts mit 900913 aka Google Merkator anfangen.
postgis-1.5\spatial_ref_sys.sql sollte ab Zeile 15135 dieses Koordinatensystem einbauen.

Solltest du die Datei von http://svn.osgeo.org/postgis/trunk/spatial_ref_sys.sql
haben, fehlt der Eintrag in der Tat. Hier ist es vollständig:
http://postgis.refractions.net/download/windows/
(ziemlich weit unten)
Zur aktuellen Version 2.0.0 kann ich allerdings nichts sagen.

Leider ist meine Datenbank nicht leer, und postgresql legt alles in nummerierten Verzeichnissen ab. Ob sich die bei dir so einfach einbinden lassen?

Gruß,
ajoessen

Das hört sich doch schon mal gut an.

Das wiederrum nicht ganz so gut. :slight_smile:

Ich hab meine Datei mal durch die von dir ersetzt.
Nun scheint es komischerweise zu funktionieren. :expressionless: :expressionless: :expressionless:
Das soll einer verstehen…

Hätte ja sein können, das es so einfach geht. :wink:

Nach langem laden hat er mir nun die Datenbank auf etwa 3500MB gefüllt. :slight_smile: :slight_smile: :slight_smile:

Wenn du mir jetzt sagst, das es bei dir auch so aussieht… :wink:

Gruß Wayne

jo jo, so siehts aus, wenn -endlich- alles ok ist.

Gruss
walter

Optimal… Dann kanns ja weiter gehen. :wink:

  • Python 2.7 in C:/Python27 installiert.

  • Mapnik 2.0.1 in C:/mapnik-2.0.1rc0 entpackt.

  • Systemvariablen erweitert bzw für Python neu eingefügt.

  • Systemvariable getestet.

Soweit sind mir keine Fehler aufgefallen :slight_smile:
Doch…

Beim testen von Python erscheint leider wieder eine Fehlermeldung:

Also langsam kann ich verstehen, warum einige MOBAC als “renderer” vorziehen… :wink:

Gruß Wayne

Du hast nicht zufälligerweise noch ein anderes Python auf dem Rechner und im Pfad?
Oder als Benutzer keine Schreibrechte auf C:\ ?
PYTHONPATH verweist auf die site-packages, mit semikolon am Ende?
Rechner vorsichtshalber neu gestartet?

Wohl wahr, aber ab einem gewissen Datenvolumen kommt man um eine Datenbank nicht herum.

Gruß,
ajoessen