Ich bin auf der Suche nach einer kleinen und einfachen Möglichkeit, ein oder mehrere Polygon-Shapefiles online darzustellen (und zwar auf einer kommunalen Website ohne vorhandene Kartenserver-Infrastruktur). Im Moment arbeite ich ausschließlich mit QGIS und würde es vorziehen, Open Source zu bleiben (für große Software-Investitionen ist kein Budget mehr vorhanden).
Die Erforschung dieses Themas führte zu einer überwältigenden Anzahl möglicher Ansätze und ließ mich ziemlich verwirrt zurück. Was ich suche, ist
- in der Lage zu sein, kategorisierte Polygone in einer thematischen Karte anzuzeigen (- wenn möglich, wäre es schön, Popups zu erhalten oder Attributinformationen abzurufen - aber das ist höchst optional)
- Ich würde es vorziehen, die meiste Arbeit (Styling usw.) in QGIS zu erledigen
- OSM als Basiskarte wäre vollkommen in Ordnung
Bisher sehen benutzerdefinierte Kartenkacheln auf einer OSM-Basiskarte so aus, wie ich es suche (oder gibt es eine bessere Lösung)? Was wäre der beste Weg, um diese Kacheln zu erstellen?
qgis
openstreetmap
openlayers
web-mapping
tiles
SAnderka
quelle
quelle
Antworten:
Für eine einfache Vorgehensweise ab QGIS können Sie QGIS Mapserver verwenden, der Karten bereitstellt, die Sie mit der normalen QGIS-Oberfläche erstellen. Alternativ können Sie GeoServer verwenden, der auf Java basiert und wahrscheinlich einfacher zu installieren ist. Da beide Programme Karten mit offenen Standards bedienen, wenn Sie mit einem beginnen und später wechseln müssen, müssen Sie den Client nicht ändern.
Sobald Sie ein System eingerichtet haben, das WMS-Karten bereitstellt, möchten Sie ein Client-Front-End. Ich würde OpenLayers empfehlen, da es ziemlich einfach zu erlernen und einfach zu erweitern ist. Es werden problemlos WMS-, WMST- und OSM-Kacheln verarbeitet.
Letztendlich müssen Sie möglicherweise zu Kacheln für Ihre WMS-Ebenen wechseln (sagen wir, Sie erhalten mehr als 50-100 Anfragen pro Minute auf vernünftiger Hardware), bevor Sie einen Kachel-Cache vor den Kartenserver legen. Wenn Sie GeoServer verwendet haben, können Sie den integrierten GeoWebCache oder TileCache verwenden .
quelle
All dies kann in QGIS und im
ogr2layers
Plugin durchgeführt werden. Der Workflow ist einfach:Gestalten Sie Ihre Daten in QGIS. Verwenden Sie die alte Symbologie, da ich bei der
New Symbology
Verwendung desogr2layers
Plugins Probleme hatte .Starten Sie das
ogr2layers
Plugin und definieren Sie die OpenLayer-Einstellungen (z. B. Kartengröße, Kartensteuerelemente, Grundkarte usw.). Dadurch wird ein Verzeichnis erstellt, das dieindex.html
und Ihre alsgeojson
Dateien konvertierten Datenebenen enthält.Laden Sie das Verzeichnis auf den Webserver hoch.
Beachten Sie, dass dies nur für einfache Webkarten gilt. Informationen zum Erstellen benutzerdefinierter Grundkarten und anderer Webmapping-Funktionen finden Sie in den Antworten von iant und Peter.
quelle
Eine weitere Option ist TileMill - es unterstützt Kacheln, Interaktion und Kartografie in einer benutzerfreundlichen webbasierten Oberfläche, einschließlich Stildefinitionen in einer Proto-CSS-Sprache namens cascadenik . Mit TileMill können Sie mbtiles- Dateien auslagern , die mit TileStream verarbeitet werden können . Das heißt, es gibt immer noch einige Tricks bei der Bereitstellung der zugeordneten Ausgaben, aber dies würde Ihnen eine schöne Plattform für die Erzeugung hochwertiger Kacheln bieten.
quelle
Ich entschloss mich, einige Informationen darüber zu geben, wie ich endlich meinen gekachelten Kartendienst in Anspruch nahm. Reines JavaScript und GeoJSONs waren keine Lösung, da ich ungefähr 40.000 Polygone und 33.000 Punkte verarbeiten muss. Also habe ich gekachelt. Oh, und ich habe immer noch keinen Zugriff auf den Root-Server, daher kann ich GeoServer oder ähnliches nicht einrichten (derzeit für einen einzelnen Client finanziell nicht realisierbar).
Nach einigem Nachforschen und Lesen habe ich mich endlich mit OpenLayers abgefunden (nach einigen Präsentationen mit GMaps). Eric Hazzards großartiges Buch "OpenLayers 2.10" (Packt Publishing, 2011) hat mir sehr geholfen, da es auch einige JavaScript-Grundlagen und Debugging-Tipps enthält.
Ich habe alle meine Vektordaten in QGIS bearbeitet, das ist definitiv der richtige Weg für einen kleinen Freiberufler wie mich (ich kenne auch einiges an ArcGIS-Zeug von der Universität, aber QGIS hat bisher alles geboten, was ich jemals brauchte).
Das Gestalten der Karte und das Erstellen der Kacheln war eine größere Herausforderung. Zuerst habe ich mich an " GMapCreator " von CASA gehalten, aber die Überlagerung mehrerer Shapefiles erwies sich als mühsam (ich muss Punktdaten über Polygone hinweg bereitstellen und dann eine kommunale Grenzlinie, die alles einschließt). Es ist absolut möglich, dies in GMapsCreator zu tun (und ich habe es für die Showcase-Phase getan), aber es dauert 3 vollständige Rendering-Zyklen (zuerst erstellen Sie Kacheln, dann werden die vorhandenen Kacheln mit späteren Features "überzeichnet" - Rendern in der richtigen Reihenfolge ist wichtig!), und die Styling-Menüs sind etwas sperrig und verwirrend. Das Speichern und spätere Bearbeiten Ihrer Karte ist ebenfalls ein kompliziertes Problem.
TileMill schien sehr vielversprechend zu sein, vor allem das CSS-ähnliche Design, also habe ich es mir angesehen. Leider ist es nur Mac oder Linux, so dass einige Leute abschrecken könnten. Mir hat das, was ich gesehen habe, sehr gut gefallen, also habe ich eine Ubuntu-Partition auf meiner Festplatte eingerichtet, sie heruntergeladen und meine Karten gestaltet. Die Dokumentation zur Styling-Syntax ist manchmal etwas knapp, aber das Anschauen des Demo-Videos (auf der Hauptseite verlinkt) beantwortet fast alles. Es ist möglich, einige interessante Dinge mit verschachtelten und / oder bedingten Stilen zu tun, und einige grundlegende CSS-Kenntnisse sollten Sie wirklich dahin bringen, wohin Sie wollen.
Am Ende rendert TileMill eine schöne einzelne * .mbtiles-Datei. Ich glaube nicht, dass es eine Möglichkeit gibt, diese direkt in OpenLayers anzuzeigen (zumindest konnte ich keine finden?), Daher war es an der Zeit, ein anderes Tool zu verwenden: mbutil . Dieses Tool "dekomprimiert" die mbtiles-Datei in eine normale Ordnerstruktur, die die gekachelten Pngs meiner Daten in den ausgewählten Zoomstufen enthält.
Schließlich habe ich alle diese Dateien auf meinen FTP-Server hochgeladen und einige umfangreiche Lektüre über OL durchgeführt, um meine Webkarte zu erstellen (Sie haben die erstellten Kacheln als TMS-Ebene hinzugefügt, aber das Erraten der richtigen Quell-URL und des Ebenennamens hat einige Zeit gedauert und gedauert googeln) und verbrannte dann einige Stunden damit, mit grundlegenden HTML / CSS-Problemen herumzuspielen. Ich wollte eine 100% -ige Breiten- / Höhenkarte mit einer schwebenden Legende, die den Identitätsrichtlinien meiner Kunden (wie erwähnt eine Gemeinde) entspricht.
Oh, und bis jetzt benutze ich Google Maps als Basis-Layer, aber das könnte bald durch einige benutzerdefinierte Luftbilder ersetzt werden, die über WMS bereitgestellt werden (nicht von mir bereitgestellt, sondern von der Landesvermessung und der Geodatenverwaltung).
Ich hoffe, ich habe nichts Wichtiges vergessen, aber wenn doch, bitte fragen Sie uns! Ich werde diesen Thread gelegentlich überprüfen.
quelle
Wenn Sie weniger als 1000 Polygone haben, sollten Sie den Kommentar von @ Mapperz zu einer Vektorlösung berücksichtigen. Wenn Sie nur wenige Polygone haben, müssen Sie keine nicht interaktiven Bilder mit Kacheln erstellen und speichern .
Gekachelte Bilder eignen sich optimal für sehr dichte Informationen wie Satellitenbilder, Straßen oder Polygone mit 50.000 Zensusgebieten.
Die einfachste Lösung für eine kleine Anzahl von Polygonen besteht darin, das Shapefile in eine KML-Datei zu konvertieren und in Google My Maps hochzuladen.
Wenn Sie in Javascript codieren, ist die interaktivste Lösung die Google Maps-API (oder OpenLayers) zum Zeichnen von Polygonen und Erstellen von Popup-Fenstern mit Informationen. Sie können beginnen, indem Sie die Shapefile-Polygone mithilfe der GDAL-Bibliothek in eine geoJSON-Datei konvertieren (eine JavaScript-Methode zum Speichern von geografischen Informationen).
Wenn Sie die Kachelroute gewählt haben, können Sie Kacheln in Amazons oder in der Google-Cloud speichern, ohne interne Probleme zu verursachen.
Dieser Blogeintrag zur thematischen Zuordnung enthält eine schöne Zusammenfassung der Vorteile des Vektoransatzes gegenüber dem Kachelnansatz, den Sie in Betracht ziehen.
Viel Glück!
quelle
Ich fühle mich für dich, Kumpel, als ich mich langsam zu dem gleichen Ergebnis durcharbeite. Nachdem ich QGIS gelernt hatte, versuchte ich es mit quantamnik und mapnik. Aber während es das QGIS-Styling portiert, ist es ein One-Way-Trip und die Styling-Systeme sind nicht 1 für 1, daher müssen Sie das Mapnik-Styling trotzdem lernen. Ich vermute, dass dies auch für die Exportfunktion von qgis mapserver gilt. Es scheint keinen "einfachen Weg" zu geben, den Mapserver zu verbessern. Hacken Sie ihn einfach und lassen Sie viel Zeit.
Mapnik, Geoserver, Kartenserver, es scheint, dass es von jedem Fan etwas gibt, aber Kartenserver scheint der Mittelweg zu sein.
Allerdings habe ich eine Verknüpfung gefunden, und zwar qgis, die über eine Befehlszeilenoption verfügt, mit der Sie eine qgis-Karte nach Ihren Wünschen rastern und eine Worldfile erstellen können. Hiermit können Sie Maptiler oder gdal2tiles verwenden, um jeweils eine Ebene zu kacheln. Wäre natürlich nicht gut für 20 Zoomstufen, noch weiß ich, was die maximale PNG-Größenbeschränkung ist.
quelle