Estoy buscando una forma fácil y a pequeña escala de presentar uno o más archivos de forma poligonal en línea (para ser precisos, en un sitio web municipal sin ninguna infraestructura existente de servidor de mapas). En este momento, estoy haciendo todo el trabajo con QGIS, y preferiría seguir siendo de código abierto (no queda presupuesto para grandes inversiones en software).
Investigar este tema resultó en un abrumador número de enfoques posibles y me dejó bastante confundido. Lo que estoy buscando es
- poder mostrar polígonos categorizados en un mapa temático (- si es posible, sería bueno obtener ventanas emergentes o poder recuperar información de atributos - pero eso es muy opcional)
- Preferiría hacer la mayoría del trabajo (estilo, etc.) en QGIS
- OSM como mapa base estaría perfectamente bien
Hasta ahora, los mosaicos de mapas personalizados en un mapa base de OSM se parecen a lo que estoy buscando (¿o hay una mejor solución)? ¿Cuál sería la mejor manera de crear estos mosaicos?
qgis
openstreetmap
openlayers
web-mapping
tiles
SAnderka
fuente
fuente
Respuestas:
Para una forma simple de hacer esto comenzando con QGIS, puede usar QGIS Mapserver, que puede servir mapas que diseñe utilizando la interfaz QGIS normal. Alternativamente, es posible que desee utilizar GeoServer, que está basado en Java y probablemente sea más fácil de instalar. Dado que ambos programas sirven mapas usando estándares abiertos si comienza con uno y necesita cambiar más tarde, no es necesario cambiar el cliente.
Una vez que tenga un sistema configurado para servir mapas WMS, querrá un cliente front-end. Recomiendo OpenLayers, ya que es bastante sencillo comenzar y fácilmente expandible. Maneja mosaicos WMS, WMST y OSM sin problemas.
En última instancia, es posible que deba pasar a los mosaicos para sus capas WMS (digamos que comienza a recibir más de 50-100 solicitudes por minuto en hardware razonable) y luego querrá considerar colocar un caché de mosaicos frente al servidor de mapas. Si usó GeoServer, puede usar GeoWebCache que está integrado o puede usar TileCache .
fuente
Todo esto se puede hacer dentro de QGIS y el
ogr2layers
complemento. El flujo de trabajo es simple:Diseñe sus datos en QGIS. Use la antigua simbología ya que tuve problemas con el
New Symbology
uso delogr2layers
complemento.Inicie el
ogr2layers
complemento y defina la configuración de las capas abiertas (como el tamaño del mapa, los controles del mapa, el mapa base, etc.). Esto creará un directorio que contiene lasindex.html
capas de datos y sus convertidas comogeojson
archivos.Cargue el directorio en el servidor web.
Tenga en cuenta que esto es solo para un mapa web simple. Para crear mapas base personalizados y otras funciones de mapeo web, consulte las respuestas de iant y Peter.
fuente
Otra opción es TileMill : admite mosaico, interacción y cartografía en una interfaz web fácil de usar, que incluye definiciones de estilo en un lenguaje proto-CSS llamado cascadenik . Con TileMill, puede crear archivos mbtiles que se pueden consumir con algo como TileStream . Dicho esto, todavía hay algunos trucos con la implementación de las salidas asignadas, pero esto le daría una buena plataforma para generar mosaicos de alta calidad.
fuente
Decidí proporcionar información sobre la forma en que finalmente elegí mi servicio de mapas en mosaico. JavaScript puro y GeoJSON no eran una solución, porque tengo que manejar aproximadamente 40k polígonos y 33k puntos. Así que fui por el embaldosado. Ah, y todavía no tengo acceso al servidor raíz, por lo que no puedo configurar GeoServer o algo similar (no sería financieramente factible para un solo cliente en este momento)
Después de un poco de investigación y lectura, finalmente me decidí por OpenLayers (después de algunas exhibiciones con GMaps). El gran libro de Eric Hazzard "OpenLayers 2.10" (Packt Publishing, 2011) realmente, realmente me ayudó mucho porque también cubre algunos conceptos básicos de JavaScript y consejos de depuración.
Hice todo mi trabajo de datos vectoriales en QGIS, por supuesto, ese es definitivamente el camino a seguir para un pequeño profesional independiente como yo (también sé bastante sobre ArcGIS de la universidad, pero QGIS ha estado ofreciendo todo lo que necesitaba hasta ahora).
Diseñar el mapa y crear los mosaicos fue un desafío mayor. Primero, utilicé " GMapCreator " de CASA, pero poner en capas múltiples archivos de forma resultó tedioso (tengo que proporcionar datos de puntos sobre polígonos, y luego un límite municipal que lo encierra todo). Es absolutamente posible hacer esto en GMapsCreator (y lo hice para la etapa de presentación), pero se necesitan 3 ciclos completos de renderizado (primero se crean mosaicos, luego los mosaicos existentes se "sobregiran" con características posteriores, renderizando en el orden correcto es importante!), y los menús de estilo son un poco voluminosos y confusos. Guardar el mapa y editarlo más tarde también es un problema complicado.
TileMill parecía muy prometedor, especialmente su estilo similar a CSS, así que lo investigué . Desafortunadamente, es solo Mac o Linux, por lo que eso puede asustar a algunas personas. Realmente me gustó lo que vi, así que configuré una partición de Ubuntu en mi disco duro, la descargué y diseñé mis mapas. La documentación sobre la sintaxis de estilo a veces es un poco escasa, pero ver su video de demostración (vinculado en el sitio principal) responde a casi todo. Es posible hacer algunas cosas interesantes con estilos anidados y / o condicionales, y cierta comprensión básica de CSS realmente debería llevarlo a donde desea ir.
Al final, TileMill representa un bonito archivo * .mbtiles único. No creo que haya una manera de mostrarlos directamente en OpenLayers (¿al menos no pude encontrar uno?), Así que era hora de usar otra herramienta: mbutil . Esta herramienta "descomprime" el archivo mbtiles en una estructura de carpeta normal que contiene los pngs en mosaico de mis datos en los niveles de zoom seleccionados.
Finalmente, cargué todos estos archivos en mi servidor FTP, leí un poco en OL para poner en marcha mi mapa web (agrega los mosaicos creados como una capa TMS, pero adivinar la URL de origen correcta y el nombre de la capa tomó algo de tiempo y googlear) y luego quemé algunas horas jugando con problemas básicos de html / CSS. Quería un mapa de ancho / alto del 100% con una leyenda flotante siguiendo las pautas de identidad "corporativas" (es un municipio, como se mencionó) de mis clientes.
Ah, y hasta ahora utilizo Google Maps como capas base, pero eso podría ser reemplazado pronto por algunas imágenes aéreas personalizadas servidas a través de WMS (no proporcionadas por mí, sino por la encuesta estatal y la administración de geodatos).
Espero no haber olvidado nada importante, pero si lo hice, ¡no dudes en preguntar! Comprobaré este hilo ocasionalmente.
fuente
Si tiene menos de 1000 polígonos, considere el comentario de @ Mapperz sobre una solución vectorial: no es necesario crear y almacenar imágenes en mosaico no interactivas si solo tiene unos pocos polígonos.
Las imágenes en mosaico son óptimas para obtener información muy densa, como mostrar imágenes satelitales, carreteras o 50,000 polígonos censales.
La solución más simple para una pequeña cantidad de polígonos es convertir el archivo de forma a KML y subirlo a Google My Maps.
Si codifica en Javascript, la solución más interactiva es la API de Google Maps (o OpenLayers) para dibujar polígonos y crear ventanas emergentes de información. Puede comenzar convirtiendo los polígonos del archivo de forma, usando la biblioteca GDAL, en un archivo geoJSON (una forma Javascript de almacenar información geográfica).
O si fue por la ruta de los mosaicos, podría almacenar los mosaicos en Amazonas o en la nube de Google sin problemas internos.
Esta entrada de blog de Mapeo temático tiene un buen resumen de las ventajas del enfoque vectorial sobre el enfoque de mosaicos que está considerando.
¡Buena suerte!
fuente
Siento por ti amigo, ya que he estado trabajando lentamente para llegar a la misma conclusión. Habiendo aprendido QGIS, probé quantamnik y mapnik. Pero aunque portará el estilo qgis, es un viaje de ida y los sistemas de estilo no son 1 por 1, por lo tanto, debe aprender el estilo mapnik de todos modos. Supongo que lo mismo se aplica a la función de exportación qgis mapserver. No parece haber una "manera fácil" de mejorar la habilidad en el servidor de mapas, simplemente apóyese y permita mucho tiempo.
Mapnik, geoserver, mapserver, parece que hay devotos de cada uno, pero Mapserver parece ser el camino del medio.
Habiendo dicho que hay un acceso directo que encontré y es qgis tiene una opción de línea de comando para rasterizar un mapa qgis a la resolución y los límites de su elección, y crea un archivo mundial. Con esto puede usar maptiler o gdal2tiles para colocar una capa a la vez. Obviamente, no sería bueno para 20 niveles de zoom, ni sé cuál es el límite máximo de tamaño png.
fuente