He logrado crear una excelente aplicación de mapeo web usando mosaicos creados a partir de GeoWebCache y un conjunto de cuadrículas personalizado, pero ahora necesito agregar una superposición a los mapas base. La única interactividad que necesito es una ventana de información emergente simple que proviene de solo uno de los atributos.
Por defecto, el conjunto de datos de superposición es un ESRI Shapefile que es 180Mb, desde entonces he logrado simplificar el conjunto de datos usando ST_SimplifyPreserverTopology que ha reducido el tamaño del ESRI Shapefile a 28Mb. Sin embargo, como archivo GeoJSON, esto sigue siendo 78Mb, que es demasiado grande.
Luego probé CartoDB y cargué los datos en una tabla y luego agregué la capa vectorial en capas abiertas, pero el volumen de datos todavía es demasiado grande y la página HTML se bloquea.
Luego probé GIS Cloud y un WMS externo, pero eso está restringido a WGS84 y no tiene la opción de obtener información de características.
Luego comencé a mirar Topojson, que creo que funcionaría realmente bien en mi conjunto de datos, pero no creo que haya una manera de cargar un topojson en un mapa en OpenLayers 2.12 que necesito usar.
Mi otra opción era UTF-Grid, así que cargué los datos en tilemill y exporté un MbTiles que puedo extraer usando mbutil. Pero, por supuesto, UTF-Grid solo admite EPSG: 3857 (web mercator), que es diferente de mi proyección, EPSG: 27700. Por lo tanto, todos los archivos .json se nombran de manera diferente a mis mosaicos en caché subyacentes de geowebcache.
¿Hay alguna manera de crear una cuadrícula UTF pero en una proyección diferente?
Ese es el trasfondo y siento que he probado la mayoría de las opciones que conozco.
Entonces, simplemente necesito una capa de superposición interactiva en un mapa OpenLayers 2.12 pero no puedo usar ningún servidor como GeoServer / Mapserver o TileStache, etc. y no puedo tener ningún script del lado del servidor como PHP.
¿Alguien puede ofrecer algún otro consejo?
Gracias
Respuestas:
Expandiendo mi comentario original:
Topojson puede funcionar bien con openlayers 2.10 (en realidad convierte topojson a geojson antes de usarlo). Pero no estoy seguro de que resuelva su problema, ya que aún puede ser demasiado grande para procesar en la mayoría de los navegadores. Un ejemplo sobre el uso de topojson en openlayers 2, basado en el ejemplo geojson de openlayers y algunos datos que utilicé en una publicación de blog .
http://www.gisky.be/cyclists/ol-topojson.html
El bit real que es importante es solo la segunda línea:
Esta línea construye un objeto geojson (fusiegem) a partir del objeto de datos que es topojson.
fuente
Esto suena como un trabajo para D3: http://bl.ocks.org/mbertrand/5218300
fuente
Puede dividir los datos en archivos GeoJSON y nombrarlos según el mosaico. Una vez que se carga el mapa, puede consultar los mosaicos visibles y usar sus nombres / urls / coordenadas para solicitar los archivos GeoJSON apropiados, que coincidan con un archivo por mosaico.
La parte difícil es crear los archivos. Para esto, definitivamente necesitas usar una herramienta. Una vez que se crean los archivos, se cargan según sea necesario y en trozos tan pequeños que no abrumarán al navegador. Otro dolor aquí es tratar con los niveles de zoom. Tendrá que decidir qué características son visibles desde qué niveles y crear sus archivos en consecuencia.
fuente