Stadtteil rendern

Hallo,

ich brauche hilfe. Ich will den Landkreis von Bad Schwalbach entland der Grenzen rendern. Leider weiß ich nicht wie es funktioniert.

Ich habe bereits die Karte schon teilweise gerendert, aber ich möchte die nicht dazuliegenden Städte/Örter nicht auf der Karte haben. Ich hoffe ihr könnt mir helfen und mir einige Tipps geben.

MFG David

Du kannst aus der Kreisgrenze ein Polygon machen, mit dem du die OSM-Daten aus dem nächstgrößeren Geofabrik-Extrakt ausschneidest. Dann wird auch nur das gerendert, was innerhalb dieses Polygons liegt.

Eventuell wirst du auch hier fündig :
http://www.odbl.de/boundaries/

Gruß,
ajoessen

Vielen Dank ajoessen.

Ich hab leider nicht gefunden was ich brauche.

Gibt es keine Tools um z.b. eine stadt aus deutschland auszuschneiden? Ich hab mit Maperative schon Bad Schwalbach als Quadrat ausgerendert, aber ich will es entlang der Grenzen rendern. Wie kann ich das machen ?

MFG David

Du brauchst ein Polygon der Stadtgrenze und kannst dann mit osmosis den entsprechenden Teil ausschneiden. Wenn es eine Relation der Stadtgrenze gibt, diese alleine als *.osm Datei herungerladen und mit den diversen existierenden Tools in ein Polygon umwandeln.

Thorsten

Hallo,

wäre es möglich, wenn mir jemand eine Anleitung erstellen könnte? Ich bin ein totaler Anfänger.

MFG David

Hallo David,

neben der Frage wie du die OSM daten nur für das Gebiet von Bad Schwalbach (meinst du im übrigen dieses Gebiet laut http://www.openstreetmap.org/browse/relation/1734859 ??) bekommst, weißt du denn schon mit welchem Programm du dann die Daten rendern willst?

Klingt ja schon nach einer guten Aufgabe für Maperitive …

Hallo stephan75,

genau das Gebiet mein ich. Ich hab es mit Maperative versucht, aber leider hab ich davon wenig Ahnung.

Gibt es eine Anleitung wie das Programm funktioniert.

Ich will nur das Gebiet was im blauen Umkreis ist. http://www.openstreetmap.org/browse/relation/1734859
Wie bekomm ich das mit Maperative hin ?

MFG David

Der schon erwähnte Ansatz ist, den gewünschten Umriss schon vor dem Rendern aus den Daten auszuschneiden. Dazu wird statt einer Bounding Box (bbox) ein Polygon (poly) File verwendet, weitere Infos im Wiki.

Um ein solches poly File zu erstellen, benötigst du die obige Relation als OSM XML Datei inklusive Wege und Knoten (aus Extrakt filtern oder in JOSM herunterladen) und konvertierst diese dann mit osm2poly.pl. Ein Problem beim Schneiden sind evtl. Flächen (z.B. Wald), die evtl. entweder gar nicht oder über den Umriss hinaus gerendert werden.

Maperitive scheint poly Bounds nicht zu unterstützen (Suche ohne Ergebnis).

Eine Alternative wäre, das nachträglich durch darüberlegen einer “Schablone” zu lösen, wie das im Thread Region hervorheben für OpenLayers beschrieben ist. Evtl. kann man das in Maperitive auch schon beim Rendern darüberlegen.

Gruß,
ikonor

Selber umwandeln brauchst du nicht.
Hier:
http://www.odbl.de/boundaries/
gibst alle Kreisgrenzen Deutschlands. da sind auch die poly-files mit drin. Wahlweise grenzgenau(polygon_genau_al6.zip) oder mit einem schmalen Zusatzstreifen (polygon_geglättet_al6.zip).
Dort findest du Schwalbach_Stadt.poly

Also nimmst du dir das Hessen-Extrakt der Geofabrik von hier:
http://www.odbl.de/boundaries/

und schneidest mit osmconvert den Ort aus:
http://wiki.openstreetmap.org/wiki/DE:Osmconvert#Ausschneiden_per_Vieleck

osmconvert hessen.osm.pbf -B=Schwalbach_Stadt.poly -o=Schwalbach.osm

und das gibst du dann an Maperitive zum Rendern.

Gruß,
ajoessen

Da er aber Bad Schwalbach haben will, sollte er besser Bad_Schwalbach.poly nehmen.
Allerdings hilft das auch nicht viel weiter, da osmconvert genausowenig wie osmosis “grenzscharf” clipt.
Es bleiben immer Rudimente übrig, die ausserhalb des Polygons liegen. Stört bei der Datenverarbeitung nicht so sehr aber beim Rendern sieht es grottenschlecht aus.

Zudem bin ich mir sicher, dass die Renderer auch Informationen über die “äussere Welt” brauchen, damit sie im Randbereich sauber arbeiten.

Die Chain könnte etwa so aussehen:

OSM → osmosis/osmconvert → grosszügige bbox → maperitive → grosses Raster-File → bad_schwalbach.shp → clipped raster-File

clippen eventuell mit qgis??

gruss
walter

Das fehlt nur leider in der zip-Datei. Dein Server schläft auch gerade :frowning:

Der zugehörige Landkreis wäre Rheingau-Taunus-Kreis.poly

Gruß,
ajoessen

Was hältst du den von der oben erwähnten Idee mit der Schablone, d.h. Multipolygon mit BBox als outer und das Grenz-Polygon als inner, die stammt ja von dir. Das müsste man doch auch mit Maperitive drüber rendern können, als Schatten oder eben weiß.

Gruß,
ikonor

oops,

ging wirklich nicht - war ein dns-problem mit dyndns.

al8 ist online: http://wnordmann.homeunix.com/index.php/downloads/cat_view/40-openstreetmap/41-grenzen/48-deutschland/44-poly-files/46-base MIT Bad_Schwalbach.poly :wink:

gruss
walter

ich vermute du willst das so machen wie ich das hier bei einem Landkreis gemacht habe:

http://gis.no.de/map/kreis-sb

Sauber entlang der Grenze ausgeschnitten. Geht ganz einfach indem du die Geometrien in der DB (osm2pgsql oder besser noch imposm) mit einer maske (deine Grenze) verschneidest.

Der postgis Befehl dazu lautet ST_Intersection

Wie du schneidest hängt von deinen Bedürfnissen ab, man kann direkt das Polygon der Grenze als Maske nehmen, ich nehme aber auch öfter mal ein definiert breiteres Gebiet, das ich erhalte in dem ich auf das Grenzpolygon noch ST_Buffer und ST_Simplify anwende, so z.B hier beim Saarland mit einem ST_Buffer Wert von 3000m

http://gis.no.de/map/saarland

sauber, sauber

Das ist die “grosse” Lösung mit Postgresql-DB und eigenem Renderer. Wirklich sauber :slight_smile:
Mir war schon klar, dass man das damit hinkriegt - nur haben wir uns zu schnell auf maperitive eingeschossen.

Danke und Gruss
Walter

Indirekt geht es auch mit Maperitive

Bereich normal rendern.

Dann das Polygon in einer Fläche als Ausschnitt (einfache Relation mit inner und outer) mit speziellen Rules damit der Background transpartent rendern.

Bei Tiles mit MOBAC über den Alpha-Kanal zusammensetzen.

Danke,

mal sehen, was David daraus macht.
Leider enden solche “Wie macht man Sowas”-Diskussionen öfters mit Funkstille und keiner erfährt dann, was der Fragesteller letztendlich gemacht hat.

Gruss
Walter

Servus,

danke :), das mit dem Rendern hat nun geklappt.

Wie kann ich machen das es noch Bunt ist? Also das mehr Grünflächen vorhanden sind.
Wie kann ich die Datei danach in Shapefiles umwandeln ?

MFG David

Mich würde interessieren, wie du das jetzt gemacht hast …

… das wäre auch bei der Beantwortung der Fragen hilfreich: welches Programm hast du verwendet (Maperitive, QGIS, …), welche Datei meinst du (OSM Format, gerendertes Bitmap, SVG, …), was möchtest du mit Shapefiles machen (die sind doch eher für noch nicht gerenderte Rohdaten, oder nicht?)?

Gruß,
ikonor

Hallo,
Ich arbeite zusammen mit David zusammen an diesem Projekt.
Wir haben die .osm so wie von ajoessen an den Grenzen ausgeschnitten. So haben wir jetzt eine .osm Datei erzeugt die nur die reinen Daten von Bad Schwalbach enthält.
Die nächste Frage ist aber noch:
Wie bekommen wir die Daten also .osm oder die Tiles ggf. wenn mit Maperative verarbeitet, zu einem Shapefile.
Sodass wir diese auf einem Geoserver laden können?
Carsten