Ich habe es geschafft, eine großartige Web-Mapping-Anwendung mit aus GeoWebCache erstellten Kacheln und einem benutzerdefinierten Gridset zu erstellen, aber jetzt muss ich den Basiskarten eine Überlagerung hinzufügen. Die einzige Interaktivität, die ich benötige, ist ein einfaches Popup-Infofenster, das nur von einem der Attribute stammt.
Standardmäßig ist das Overlay-Dataset ein ESRI-Shapefile mit 180 MB. Seitdem ist es mir gelungen, das Dataset mithilfe von ST_SimplifyPreserverTopology zu vereinfachen, wodurch die ESRI-Shapefile-Größe auf 28 MB gesenkt wurde. Als GeoJSON-Datei sind dies jedoch immer noch 78 MB, was einfach zu groß ist.
Ich habe dann CartoDB ausprobiert und die Daten in eine Tabelle geladen und dann die Vektorebene in Openlayern hinzugefügt, aber das Datenvolumen ist immer noch zu groß und die HTML-Seite stürzt ab.
Ich habe dann GIS Cloud und ein externes WMS ausprobiert, aber das ist auf WGS84 beschränkt und hat keine Getfeature-Info-Option.
Ich habe dann angefangen, mir Topojson anzuschauen, was meiner Meinung nach sehr gut für meinen Datensatz geeignet ist, aber ich glaube nicht, dass es eine Möglichkeit gibt, einen Topojson in OpenLayers 2.12 auf eine Karte zu laden, die ich verwenden muss.
Meine andere Option war UTF-Grid, also habe ich die Daten in tilemill geladen und eine MbTiles exportiert, die ich mit mbutil extrahieren kann. Aber natürlich unterstützt UTF-Grid nur EPSG: 3857 (Web Mercator), was sich von meiner Projektion EPSG: 27700 unterscheidet. Daher werden alle .json-Dateien anders benannt als meine zugrunde liegenden zwischengespeicherten Kacheln von geowebcache.
Gibt es eine Möglichkeit, ein UTF-Raster zu erstellen, jedoch in einer anderen Projektion?
Das ist also der Hintergrund und das Gefühl, dass ich die meisten Optionen ausprobiert habe, die ich kenne.
Ich brauche also einfach eine interaktive Overlay-Ebene in einer OpenLayers 2.12-Map, aber ich kann keinen Server wie GeoServer / Mapserver oder TileStache usw. verwenden und ich kann kein serverseitiges Scripting wie PHP verwenden.
Kann jemand andere Ratschläge geben?
Vielen Dank
Antworten:
Erweitern meines ursprünglichen Kommentars:
Topojson funktioniert gut mit Openlayern 2.10 (Sie konvertieren Topojson tatsächlich in Geojson, bevor Sie es verwenden). Ich bin mir jedoch nicht sicher, ob es Ihr Problem lösen würde, da es in den meisten Browsern möglicherweise noch zu groß ist, um verarbeitet zu werden. Ein Beispiel für die Verwendung von Topojson in Openlayers 2, basierend auf dem Geojson-Beispiel für Openlayers und einigen Daten, die ich in einem Blogbeitrag verwendet habe .
http://www.gisky.be/cyclists/ol-topojson.html
Das eigentliche wichtige Bit ist nur die zweite Zeile:
Diese Zeile erstellt ein Geojson-Objekt (fusiegem) aus dem Datenobjekt topojson.
quelle
Das klingt nach einem Job für D3 - http://bl.ocks.org/mbertrand/5218300
quelle
Sie können die Daten in GeoJSON-Dateien aufteilen und sie nach Kacheln benennen. Sobald die Karte geladen ist, können Sie die sichtbaren Kacheln abfragen und ihre Namen / URLs / Koordinaten verwenden, um die entsprechenden GeoJSON-Dateien anzufordern, die einer Datei pro Kachel entsprechen.
Der schwierige Teil ist das Erstellen der Dateien. Dafür müssen Sie unbedingt ein Werkzeug verwenden. Sobald die Dateien erstellt sind, werden sie nach Bedarf und in so kleinen Blöcken geladen, dass sie den Browser nicht überfordern. Ein weiterer Schmerz ist der Umgang mit Zoomstufen. Sie müssen entscheiden, welche Funktionen von welchen Ebenen aus sichtbar sind, und Ihre Dateien entsprechend erstellen.
quelle