soporte geoservidor para proxy otros servicios de mosaico?

8

Me gustaría utilizar un servidor central para proporcionar una ubicación común para todos nuestros recursos de mapeo / imágenes. Nuestros datos están principalmente en forma de geotiffs con una variedad de capas base de varias fuentes en la web.

Geoserver, dado un conjunto de geotiffs, hace un buen trabajo al servir mosaicos (a través de WMTS o TMS). Sin embargo, no conozco una manera de enviar fácilmente otras fuentes externas de datos, como las capas base de muestra de http://services.arcgisonline.com/ArcGIS/rest/services . Desafortunadamente, no parece que muchos servicios implementen una capa WMS (o no la hagan pública). Actualmente tenemos lógica en nuestra aplicación para casos especiales de varios servicios web, pero es un poco hack. Idealmente, me gustaría presentar una interfaz de servicios web común a todos nuestros proveedores de mosaicos. Esto permitiría a los clientes WMS, como las aplicaciones eólicas mundiales, "simplemente trabajar".

Mi único pensamiento en este momento es crear un pequeño servicio web de Python que exponga una lista de capacidades a través de WMS y luego agregar este servicio en geoserver como una tienda WMS en cascada. Parece mucho trabajo simplemente servir URL de mosaico de mapa.

Tengo curiosidad por saber si este problema se ha resuelto antes o si hay una solución más fácil.

¡Gracias!

cshimer
fuente

Respuestas:

7

Es posible que desee consultar MapProxy . Es un proxy de código abierto para datos geoespaciales. Almacena en caché, acelera y transforma datos de los servicios de mapas existentes y sirve a cualquier cliente de escritorio o web GIS.

ingrese la descripción de la imagen aquí

Lee datos de:

  • Fuentes WMS (1.0.0–1.3.0)
  • Fuentes TMS / WMTS Configuraciones de Mapserver y Mapnik
  • cualquier fuente compatible con TileCache, Google Maps o Bing

También puede

  • datos de caché en el sistema de archivos, como MBTiles o dentro de CouchDB
  • reproyectar fuentes WMS a otros SRS
  • almacenar imágenes idénticas solo una vez (por ejemplo, baldosas oceánicas)
  • incrustar marca de agua en azulejos
  • fusionar múltiples fuentes
  • limitar las fuentes a áreas poligonales

MapProxy también es un servidor WMS totalmente compatible y admite cualquier cliente WMS (escritorio y web). Admite respuestas WMS de datos en caché:

  • fusiona mosaicos y escalas o reproyecta imágenes
  • acelera el WMS existente de 10 a 100 veces

y servicios WMS en cascada:

  • solicitudes de subprocesos múltiples
  • combina múltiples fuentes
  • agrega transparencia a las capas opacas
  • reproyecta sobre la marcha

También admite combinaciones de capas en caché y en cascada:

  • responder a las solicitudes GetLegendGraphic
  • Solicitudes GetFeatureInfo en cascada con transformaciones XSL opcionales
  • limitar las fuentes a áreas poligonales
  • convertir versiones WMS y formatos de imagen
  • soporte para datos ráster sin imagen como DEM

También puede pregenerar el caché de teselas para un mejor rendimiento.

También viene con una API de autorización flexible que le permite agregar un control detallado sobre los servicios y las capas.

RK
fuente
2
Esta es la mejor respuesta a la pregunta, pero debe tomarse con la recomendación de que nunca debe hacer esto en servicios externos que no controla; al menos, es una pesadilla de rendimiento y, por lo general, va en contra de los términos del servicio y lo hará. resultará en la suspensión de su servicio.
tmcw
0

Estás creando un cuello de botella mediante la representación de servicios externos a través de tu servidor. También reducirá el rendimiento de su mapa web al obligar a un servidor a procesar todas las solicitudes.

La única razón por la que tal vez podría ver una razón para esto es por seguridad. Pero incluso entonces es mejor asegurar el punto final en su lugar y pasar un token.

Donny V.
fuente