Wie zeichne und visualisiere ich benutzerdefinierte Karten basierend auf OSM-Daten?

35

Ich möchte in der Lage sein, Openstreetmap-Daten für eine bestimmte Region als Quelle zu verwenden und daraus die Karte der Infrastrukturverbesserungen zu "ziehen" - hauptsächlich Straßen.

Ich möchte, dass es selbst gehostet wird (ohne Daten auf den realen OSM-Servern zu verderben), dass der Bearbeitungsprozess sehr flexibel und detailliert ist, und es wäre schön, es auf hübsche Weise zu rendern.

Ich bin nicht mit vielen GIS-Software vertraut. Eigentlich ist es nicht so wichtig, OSM-Daten als Quelle zu haben, es könnte auch ein Satellitenbild sein. Die wichtigsten Dinge - flexibles Zeichnen an reale Koordinaten gebunden und Visualisierung der Karte.

Wo könnte ich anfangen?

Hoffe diese Frage macht hier Sinn :)

Arconaut
quelle
Auf welcher Plattform suchen Sie? Können Sie mit Google Maps Formen zeichnen?
Jared Updike
Jared, meinst du die einfache "My Maps" -Schnittstelle von Google Maps? Das reicht mir nicht :) Ich brauche viel mehr Details. Oder meinst du etwas anderes?
Arconaut
Für welchen Teil der Welt möchten Sie das tun? In einigen Teilen der Welt sind viele Straßendaten öffentlich zugänglich.
17.

Antworten:

16

Der OpenStreetMap-XML-Datentyp .osm kann in einer Reihe von Softwarepaketen analysiert und gerendert werden. Für eine etwas schlüsselfertige benutzerdefinierte Kartenkachel-Schublade schlage ich vor: http://tiledrawer.com --- ein Produkt, das Amazon EC2 verwendet und von Michal Migurski - der andere Hinweise in diesem Thread bereitstellt :)

Möglicherweise lesen Sie auch "Erstellen Sie Ihren eigenen OpenStreetMap-Server" http://weait.com/content/build-your-own-openstreetmap-server. Es wird ein Ubuntu 10.04 / PostGIS / Mapnik-Stack verwendet.

Bitte schauen Sie sich vor dem Erstellen die OpenStreetMap-Lizenz an. http://wiki.openstreetmap.org/wiki/OpenStreetMap_License .

Glennon
quelle
Vielen Dank, ich bin selbst einmal auf TileDrawer gestoßen, aber ich verstehe, dass ich dafür eine Amazon EC2-Instanz haben muss. Das möchte ich
erstmal
Ich habe gelesen, dass Sie das EC2-Image mit VirtualBox auf Ihrem eigenen Computer ausführen können.
James
Die Tiledrawer-Website wurde aufgegeben, das Github-Repo ist noch da, aber auch inaktiv: github.com/migurski/Tile-Drawer (siehe auch im OSM-Wiki )
chrki
11

Ich habe genau das gefunden, was ich brauchte: Maperitive . Diese Anwendung kann OSM-Daten laden (* .osm kann von JOSM fi gespeichert werden) und schöne Bilder basierend auf sehr flexiblen und anpassbaren Regeln rendern.

Arconaut
quelle
Ich habe festgestellt, dass Maperitive hängt, wenn ich versuche, eine .osm.bz2-Datei oder sogar eine .osm.pbf-Datei zu laden. Die Dateien, die ich ausprobiert habe, waren ungefähr 185 MB groß, also nichts in der Größenordnung der planet.osm.bz2-Datei (19 GB!), Die ich wirklich brauche. Wie haben Sie die Dateien geladen?
Drew Noakes
Drew, ich glaube, ich habe nur viel kleinere Gebiete ausprobiert.
Arconaut
Maperitive ist eine Closed-Source-Software, die auf .NET aufbaut und unter Linux nicht funktioniert. Aber es hat definitiv einen Vorteil gegenüber Mapnik: einfacheres Styling.
Vanuan
3
Ich schlage TileMill als Open-Source-Alternative vor.
Vanuan
9

Zwei Möglichkeiten, je nachdem, wie viele OSM-Daten Sie selbst bearbeiten möchten.

Eine besteht darin, Ihren eigenen OSM-Server mit einer Kopie der Daten zu hosten, die Sie frei bearbeiten können. Die Software dafür heißt "The Rails Port" und ist hier zu finden: http://wiki.openstreetmap.org/wiki/The_Rails_Port

Zum anderen können Sie die gekachelte Kartografie von OSM als Hintergrund für Ihre eigenen Daten verwenden. Ich bin nicht wirklich qualifiziert, um diese Frage zu beantworten, aber Sie werden feststellen, dass Tools wie QGIS (http://www.qgis.org) die Verfolgung neuer Formen auf der Grundlage einer OSM-Basiskarte ermöglichen können.

Michal Migurski
quelle
8

Die Kartenerstellung gliedert sich in mehrere Schritte:

  • Eingabe der Geodaten (Punkte, Linien und Polygone mit entsprechenden Tags)
  • Styling (Erscheinungsbild der Features auf der Karte festlegen)
  • Rendern in ein Rasterbild (Umwandlung von Geodaten und Stilen in ein Bild mithilfe von Rendering-Software)

Sie möchten ein Tool, das alle Macken hinter einer benutzerfreundlichen Benutzeroberfläche für Sie erledigt. Leider gibt es kein solches Tool (hoffentlich wird es eines geben). Sie müssen also für jeden Schritt ein spezielles Werkzeug auswählen.

Ich benutze die folgende Kombination von Tools / Workflow:

Geodaten eingeben / herunterladen

  • JOSM-Editor :
    • lade eine map vom osm server herunter
    • Bearbeiten Sie eine Karte
    • Laden Sie Ihre Änderungen auf den Osm Server hoch (warum geben Sie Ihre Arbeit nicht weiter?)
    • Speichern Sie eine Karte in einer * .osm-Datei
  • PostGIS / osm2pgsql
    • Aktualisieren Sie bei Bedarf die Importstildatei
    • Importieren Sie eine Karte auf den lokalen Server

Wenn Sie Ihre Arbeit nicht freigeben möchten, können Sie den lokalen OSM-Server einrichten und JOSM damit arbeiten lassen (das Speichern einer Map in einer * .osm-Datei und die Verwendung von osm2pgsql ist nicht erforderlich). Beachten Sie jedoch die Lizenz, wenn Sie Teile der OSM-Daten verwenden.

Styling

Das Styling besteht aus zwei Schritten:

  • Einrichten von Layern / Datenquellen
  • Passen Sie Linien / Poligons / Punkte / Textausgaben an.

Es gibt zwei Formate, um eine Map zu formatieren: "raw" Mapnik-Style-Datei und CartoCSS.

  • Mapnik ist eine Rendering-Bibliothek, die die OSM-Site antreibt.
    • Einrichten und Bearbeiten der Mapnik-Style-Datei
    • öffne die style datei im mapnik viewer

Eine "rohe" Mapnik-Datei ist mühsam zu bearbeiten, und CartoCSS ist eine einfachere Alternative. CartoCSS (früher Cascadenik) kann in eine Mapnik-Datei konvertiert werden. Tilemill ist ein Werkzeug, mit dem ich CartoCSS bearbeite / in der Vorschau ansehe.

  • Tilemill .
    • Stil / Vorschau Ihrer Karte in Tilemill
    • Export in eine mapnik * .xml Datei.

Rendern

  • Benutzerdefiniertes Python-Skript für Mapnik
    • Begrenzungsrahmen / Zoomstufe / Größe aktualisieren
    • Karte in * .png-Datei rendern.

[Optional] Schalten Sie Ihre Karte online

Natürlich können Sie auch eine große * .png-Datei für Ihre Karte verwenden, aber stellen Sie sich vor, wie lange der Download dauern würde! So teilen Sie Ihre Karte in Kacheln mit unterschiedlichen Zoomstufen auf.

  • Tilemill -> Mapnik -> MBTiles -> Mapbox

    • Sie können Ihre Karte mit Tilemill und MapBox online stellen.

Um Ihre Karte gemäß den neuen OSM-Änderungen zu aktualisieren, müssen Sie sie leider noch herunterladen und lokal rendern.

Es gibt also eine bessere Lösung: CartoDB. CartoDB unterstützt CartoCSS. Damit müssen Sie nichts lokal installieren. Importieren Sie einfach Ihre Daten, stylen Sie sie mit CartoCSS und klicken Sie auf die Schaltfläche "Teilen". Es gibt jedoch eine freie Grenze für die Größe der Datenbank. Aber da es Open Source ist, können Sie es selbst hosten. Es gibt eine weitere Einschränkung: Sie können nur Punkte, Linien oder Polygone anzeigen.

PS

Jedes Tool hat seine eigenen Einschränkungen. Versuchen Sie also zu experimentieren.

Vanuan
quelle
3

Wenn Sie einen guten benutzerdefinierten Karteneditor suchen , schauen Sie sich OCAD an , eine professionelle Software zum Zeichnen von Karten. Auf der Download-Seite steht eine ältere Version kostenlos zur Verfügung.

Es gibt keine spezielle Unterstützung für OSM, aber Sie können immer ein aus OSM exportiertes Bild als Hintergrund verwenden.

Jonas
quelle
3

Es gibt eine einfachere Möglichkeit, mit Open Street Map-Daten im OSM-Format herumzuspielen. Sie können FME über Safe Software (www.safe.com) ausprobieren.

Weitere Informationen zur OSM-Unterstützung finden Sie hier: http://blog.safe.com/2010/03/sharing-your-data-on-openstreetmap/

Ich habe FME einige Male verwendet, um Demo-Datensätze für das Training für meine Region mithilfe von FME- und OSM-Daten zu erstellen

~ SRG

SRG
quelle
3

Die Standard-OSM-Kacheln haben das Format "Google-Kacheln". Diese werden als Tile Map Service (TMS) bezeichnet. Derzeit können Sie QGIS für TMS nicht verwenden. Sie können jedoch auf das von OSM abgeleitete WMS zugreifen, indem Sie sich den Service eines anderen Anbieters ansehen. Einige sind hier verlinkt: http://wiki.openstreetmap.org/wiki/WMS#Public_WMS_Servers

maning
quelle
1
Sie können das OpenLayers-Plugin ( github.com/sourcepole/qgis-openlayers-plugin ) in QGIS verwenden, um OSM-Kacheln einzulesen.
Mattwigway
2

Sie können den Style Editor von Cloudmade (kommerzieller Arm von OSM) verwenden.

Kostenlos registrieren und als Einzelperson verwenden.

Mit einer sehr guten Benutzeroberfläche können Sie Ihren eigenen Kartenstil erstellen. Wenn Sie Ihre Karte mit Ihren Farben usw. angepasst haben, können Sie sie zum Einbetten oder Erstellen eines Links zu der Seite mit Ihrer benutzerdefinierten Karte verwenden.

Siehe den Blog-Beitrag http://mapperz.blogspot.com/2009/03/cloudmade-map-editor.html (weitere Updates dort)

Mapperz
quelle
Cloudmade ist nicht Teil von OpenStreetMap: Ist CloudMade Teil von OpenStreetMap?
Scruss
1

Die offiziellen OSM-Karten werden mit TileMill gestylt und mit Mapnik gerendert. Beide Tools sind extrem leistungsfähig und flexibel. Was für OSM gut ist, sollte für Sie gut sein!

Leider gestaltet sich das Einrichten von TileMill kompliziert, zumindest wenn Sie OSM-Daten rendern möchten. Es gibt viele Beschreibungen für Ubuntu oder Mac , aber die Kommentare in den Foren zeigen, dass das Verfahren unter Windows schwierig ist.

Eine ausführliche Beschreibung zum Karten-Rendering mit TileMill unter Windows finden Sie im Wiki von TopoMapCreator .

Es folgt der klassischen Vorgehensweise:

  • Schritt A: Herunterladen und Installieren der erforderlichen Software (hauptsächlich eine Postgresql / PostGis-Datenbank)
  • Schritt B: Herunterladen und Importieren von OSM-Daten in die Datenbank
  • Schritt C: Herunterladen und Verarbeiten von Landpolygonen
  • Schritt D: Erstellen eines TileMill-Projekts
  • Schritt E: Stylen und Exportieren der Karte mit TileMill

Mehr im Wiki von TopoMapCreator .

Günter Schmudlach
quelle
1

Eine andere Möglichkeit, benutzerdefinierte Karten mit OSM-Daten zu erstellen, besteht in der Mapsense.js- Bibliothek und den Mapsense Earth-Vektorkacheln. Es gibt eine Benutzeroberfläche zum Auswählen von Farben unter http://styler.mapsense.co/ und Demos mit CSS und Javascript unter developer.mapsense.co/examples/.

Ein Vorteil einer solchen API ist, dass Sie mit Javascript / d3 alles hinzufügen können, was Sie möchten (Satellitenbilder, anderes Geo / Topojson usw.).

Vollständige Offenlegung: Ich arbeite bei Mapsense. :)

jmk
quelle
0

Wenn Sie nur ein statisches Kartenbild erstellen möchten, können Sie diese Option aktivieren, um eine .svg-Inkscape-Datei aus .osm s zu erstellen. Dies ist jedoch etwas langsam. Sie können dann die .svg öffnen, oder wenn Sie es in ein anderes Format konvertieren möchten (png?) Oder es sogar in 3d studio oder Blender laden:) ...

(Außerdem scheint JOSM ein Plugin zu haben, das Osmarender unterstützt, aber ich habe es dieses Mal nicht geschafft, es auszuführen ...)

ntg
quelle