Stadtteil rendern

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

Was wollt ihr denn nun? Ein Shape ein Geoserver oder eine gerenderte Karte.
Wenn ihr nur eine OSM Karte in eine Geodatenbank bringen möchtet, dann gibts da das Programm Osmosis. Openstreetmap verwendet vor allem postgresqldatenbanken mit der Postgiserweiterung.
Wenn die Datenbank zum rendern sein soll, bietet sich das Programm osm2pgsql an. Diese Datenbank kann man übrigens auch in Qgis darstellen und die Layer als shape speichern.
Außerdem gibts noch Programme dafür, welche ohne Umwege Tabellen als shp speichern können.
Wenn ihr einen kleinen Bereich mit einem eigenen Stil rendern wollt, dann die Datei entweder an Mapnik oder Maperativ oder Kosmos(vorgänger von Maperativ) verfüttern. Eine Anleitung für Kosmos gibts übrigens auch bei Ajoessen auf der Seite. Natürlich nicht für einen Stadtteil sondern für bestimmte ausgewählte Details.

Hallo Carsten,

willkommen im Forum.

Also wenn ihr mit Maperitive rendert, ist ein GeoServer erst mal nicht notwendig, die generierten Tiles können auch direkt über einen normalen Webserver an den Client, z.B. OpenLayers, ausgeliefert werden. Mit Shapefiles kenne ich mich nicht so aus, verstehe die aber als Vektor-Format, eine Konvertierung von Raster-Tiles macht da m.E. keinen Sinn. Höchstens eine Indizierung der Tiles, um die als WMS in verschiedenen Projektionen ausliefern zu können, falls das das Ziel ist, ob und wie das geht kann ich aber nicht sagen.

Um die Rohdaten im GeoServer nutzen zu können, sehe ich zwei Wege:

  1. .osm > Shapefiles > GeoServer, siehe Wiki: http://wiki.openstreetmap.org/wiki/Shapefiles

  2. .osm > osm2pgsql > PostGIS > GeoServer
    damit könnte man im PostGIS die Daten auch sauber schneiden, siehe Post #14 von misterboo

Die Daten werden dann im GeoServer z.B. per SLD gerendert. Mit dem Tool Mapnik2GeoTools könnte man evtl. Mapnik Stylesheets zu SLD konvertieren, das ist allerdings noch etwas unrund.

Welcher Weg der Richtige ist, hängt davon ab, was mit dem GeoServer unterstützt werden soll (WMS und/oder WFS), d.h. was das Projektziel ist.

Gruß,
ikonor

Können sie uns gegebenenfalls genauer erklären wie das mit dem osm2pgsql funktioniert.
Oder besser noch wie man aus den Osm Daten direkt ein Shapefile umwandelt (Programme und etwas genauere Anleitung)
Wir sind absolut noch auf dem Gebiet.

Schau mal hier:
http://lmgtfy.com/?q=osm2pgsql
Da findet man eine Menge zu dem Programm osm2pgsql.
Wenns direkt in shps sein soll:
http://lmgtfy.com/?q=osm2shp
Welches der vielen Programme dann für Euch in Frage kommt müsst ihr auf Grund eurer Umgebung festlegen. Und nochmal es ist sinnlos osm Daten in shps zu wandeln, wenn man danach eine Karte rendern möchte. Das kann man auch einfacher haben. Insbesondere was ein Import in eine Geodtadenbank angeht.

Hier gibts ein Proramm zur direkten Umwandlung:

http://code.google.com/p/osm2shp/
Eventuell muß man Punkte, Linien und Polygone in getrennten Vorgängen umwandeln in 3 Shapefiles.

Gruß,
ajoessen

Um zu schauen, ob ein Shapefile wirklich das ist was ihr wollt, könntet ihr auch testweise mal das kleinste zip von der Geofabrik herunterladen, z.B. bremen.shp.zip:

http://download.geofabrik.de/osm/europe/germany/

Wisst ihr denn schon, wie aus dem Shapefile dann eine Karte gerendert werden soll? Im GeoServer werden da z.B. Straßen erst mal nur generell einfarbig als blaue Linien angezeigt. Das oben erwähnte Mapnik2GeoTools funktioniert für Shapefiles nicht, oder nur mit sehr viel Aufwand.

und hier noch was ganz Feines: pgsql2shp macht postgresql → shape

http://kvwmap.geoinformatik.uni-rostock.de/index.php/Shape-Daten_aus_der_Post-GIS_Datenbank_ausgeben

wird direkt mit postgresql ausgeliefert. (in pgsql/bin)

Gruss
walter

Hallo,

ich versuch mal zu erklären was wir vor haben. Unsere Aufgabe besteht darin die Stadt Bad Schwalbach(mit Umkreis) auf ein Offline Geo-Server zu laden. Wir haben bereit die Karte so gerendert das man nur Bad Schwalbach und Umkreis hat wie auf dem Bild (#10). Ich möchte nur wissen, wie ich das jetzt hinbekomme, das die karte so aussieht wie bei OSM (hintergrund mit grün) und wie ich dann shapefiles erstelle, damit ich die auf den Geo-Server drauf spielen kann.

MFG david