Processing math: 100%

26 votos

Creación de un pequeño servicio de mapeo web/mapping

Busco una forma sencilla y a pequeña escala de presentar en línea uno o varios shapefiles de polígonos (en un sitio web municipal sin ninguna infraestructura de servidor de mapas existente, para ser exactos). En este momento, estoy haciendo todo el trabajo con QGIS, y yo preferiría seguir siendo todo de código abierto (no hay presupuesto para cualquier inversión en software grande).

Investigar sobre este tema dio como resultado un número abrumador de posibles enfoques, y me dejó bastante confuso. Lo que busco es

  • poder mostrar polígonos categorizados en un mapa temático (- si es posible, estaría bien tener ventanas emergentes o poder recuperar información de atributos - pero eso es altamente opcional)
  • Preferiría hacer la mayor parte del trabajo (estilización, etc.) en QGIS.
  • OSM como mapa base estaría perfectamente bien

Hasta ahora, los mosaicos de mapa personalizados sobre un mapa base OSM parecen lo que estoy buscando (¿o hay alguna solución mejor?). ¿Cuál sería la mejor manera de crear estos azulejos?

14voto

Adam Ernst Puntos 6939

Para una forma sencilla de hacer esto a partir de QGIS puede utilizar Servidor de mapas QGIS que puede servir mapas que usted diseñe utilizando la interfaz normal de QGIS. Otra opción es GeoServidor basado en Java y probablemente más fácil de instalar. Dado que ambos programas sirven mapas utilizando estándares abiertos, si empiezas con uno y necesitas cambiar más adelante no hay necesidad de cambiar el cliente.

Una vez que tengas un sistema configurado para servir mapas WMS, querrás un front-end cliente. Yo recomendaría OpenLayers ya que es bastante sencillo de empezar y fácilmente ampliable. Maneja WMS, WMST y OSM sin problemas.

En última instancia, puede que tenga que pasar a los azulejos para sus capas WMS (digamos que usted comienza a recibir más de un 50-100 solicitudes por minuto en el hardware razonable), entonces usted querrá mirar a poner una caché de azulejos en frente del servidor de mapas. Si utiliza GeoServer, puede utilizar GeoWebCache, que está integrado, o puede utilizar TileCache .

8voto

Haydar Puntos 699

poder mostrar polígonos categorizados en un mapa temático (- si es posible, estaría bien obtener ventanas emergentes o poder recuperar información sobre atributos - pero eso es muy opcional)

Preferiría hacer la mayor parte del trabajo (estilización, etc.) en QGIS.

OSM como mapa base estaría perfectamente bien

Todo esto se puede hacer dentro de QGIS y el ogr2layers plugin. El flujo de trabajo es sencillo:

  1. Estiliza tus datos en QGIS. Utilice la simbología antigua ya que tuve problemas con la New Symbology cuando se utiliza el ogr2layers plugin.

  2. Inicie el ogr2layers y defina los ajustes de openlayers (como el tamaño del mapa, los controles del mapa, el mapa base, etc.). Se creará un directorio que contendrá los archivos index.html y sus capas de datos convertidas como geojson archivos.

  3. Cargue el directorio en el servidor web.

Tenga en cuenta que esto es sólo para webmap simple. Para crear mapas base personalizados y otras funciones de webmapping, consulte las respuestas de iant y Peter.

6voto

Robert Höglund Puntos 5572

Otra opción es TileMill -- admite mosaicos, interacción y cartografía en una interfaz basada en web fácil de usar, que incluye definiciones de estilo en un lenguaje proto-CSS llamado cascadenik . Con TileMill, puede crear mbtiles que se pueden consumir con algo como TileStream . Dicho esto, todavía hay algunos trucos con el despliegue de las salidas mapeadas, pero esto le daría una buena plataforma para generar azulejos de alta calidad.

6voto

highlycaffeinated Puntos 11645

He decidido proporcionar alguna información sobre el camino que finalmente tomé para mi servicio de mapas en mosaico. JavaScript puro y GeoJSONs no eran una solución, porque tengo que manejar aproximadamente 40k polígonos y 33k puntos. Así que opté por el mosaico. Ah, y todavía no tengo un acceso al servidor raíz, así que no puedo configurar GeoServer o algo similar (no sería financieramente factible para un solo cliente en el momento)

Después de investigar y leer un poco, finalmente me decidí por OpenLayers (después de algunas pruebas 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, eso es definitivamente el camino a seguir para un pequeño autónomo como yo (también sé bastante ArcGIS cosas de la universidad, pero QGIS ha estado ofreciendo todo lo que he necesitado hasta ahora).

Estilizar el mapa y crear los mosaicos fue un reto mayor. En primer lugar, me guié por " GMapCreator " de CASA, pero la superposición de varios archivos shape ha resultado ser tediosa (tengo que proporcionar datos de puntos sobre polígonos, y luego un límite municipal que lo encierre todo). Es absolutamente posible hacer esto en GMapsCreator (y yo lo hice para la fase de presentación), pero se necesitan 3 ciclos completos de renderizado (primero se crean las baldosas, luego las baldosas existentes se "sobredibujan" con características posteriores - ¡el renderizado en el orden correcto es importante!), y los menús de estilo son un poco voluminosos y confusos. Guardar el mapa y editarlo después también es complicado.

TileMill parecía muy prometedor, especialmente por su estilo CSS, así que lo investigué. Desgraciadamente, es sólo para Mac o Linux, lo que puede asustar a algunos. Me gustó mucho lo que vi, así que creé una partición de Ubuntu en mi disco duro, lo descargué y le di estilo a mis mapas. La documentación sobre la sintaxis de estilo es a veces un poco escasa, pero viendo su vídeo de demostración (enlazado en el sitio principal) se responde a casi todo. Es posible hacer algunas cosas interesantes con estilos anidados y/o condicionales, y algunos conocimientos básicos de CSS deberían llevarte a donde quieres ir.

Al final, TileMill renderiza un único y bonito archivo *.mbtiles. No creo que haya una forma de mostrarlos directamente en OpenLayers (al menos yo no la encontré ), así que era hora de usar otra herramienta: mbutil . Esta herramienta "descomprime" el archivo mbtiles en una estructura de carpetas normal que contiene los pngs en mosaico de mis datos en los niveles de zoom seleccionados.

Finalmente, subí todos estos archivos a mi servidor FTP, leí un poco sobre OL para poner en marcha mi mapa web (se añaden los azulejos creados como una capa TMS, pero adivinar la url de origen correcta y el nombre de la capa me llevó algún tiempo y buscar en Google) y luego pasé algunas horas jugando con cuestiones básicas de HTML/CSS. Quería un mapa 100% ancho/alto con una leyenda flotante siguiendo las directrices de identidad "corporativa" de mis clientes (es un municipio, como se ha mencionado).

Ah, y hasta ahora utilizo Google Maps como capas de base, pero es posible que pronto se sustituya por algunas imágenes aéreas personalizadas servidas a través de WMS (no proporcionadas por mí, sino por la administración estatal de topografía y geodatos).

Espero no haber olvidado nada importante, pero si es así, no dude en preguntar. Revisaré este hilo de vez en cuando.

3voto

prolink007 Puntos 190

Si tiene menos de 1000 polígonos, considere el comentario de @Mapperz sobre una solución vectorial - no hay necesidad de crear y almacenar no interactivo imágenes en mosaico si sólo tiene unos pocos polígonos.

Las imágenes en mosaico son óptimas para información muy densa, como imágenes de satélite, carreteras o polígonos de 50.000 secciones censales.

La solución más sencilla para un número reducido de polígonos es convertir el shapefile en un KML y subirlo a Google My Maps.

Si codificas en Javascript, la solución más interactiva es la API de Google Maps (u OpenLayers) para dibujar polígonos y crear ventanas emergentes de información. Puedes empezar por convertir los polígonos del shapefile, utilizando la biblioteca GDAL, en un archivo geoJSON (una forma Javascript de almacenar información geográfica).

O, si optas por la vía de los mosaicos, puedes almacenarlos en la nube de Google o Amazon sin problemas.

Esta entrada de blog sobre cartografía temática tiene un buen resumen de las ventajas del enfoque vectorial sobre el enfoque de baldosas que estás considerando.

Buena suerte.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X