Re: [Spanish] Mejor manera de servir un conjunto de imágenes georreferenciadas

Jorge Gaspar Sanz Salinas jsanz at osgeo.org
Thu Sep 22 11:02:14 EDT 2011


El 22/09/11 16:32, Jorge Arévalo escribió:
> Buenas,
> 
> Jeje, justo estaba leyendo un paper tuyo del 2006 sobre un tema parecido :-)
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>>> El 22/09/11 15:06, Jorge Arévalo escribió:
>>> Buenas lista,
>>>
>>> Tengo una aplicación en OpenLayers que muestra sobre una capa base una
>>> lista de polígonos a partir de un JSON que los contiene (y que se
>>> genera en una app escrita en GeoDjango, pero eso da igual).
>>>
>>> Me ha surgido la necesidad de superponer imágenes, además de
>>> polígonos, y me pregunto si es buena idea crear un objeto JSON con
>>> ellas en el servidor, igual que hice con los polígonos, o hay otra
>>> manera mejor. ¿Algún consejo?
>>>
>>> Decir que también estoy sirviendo polígonos con Mapserver, y podría
>>> plantearme servir las imágenes vía WCS, pero la misma duda: ¿es mejor
>>> servirlas a través de Mapserver, crear un JSON, algún otro método
>>> alternativo?
>>>
>>> Gracias por adelantado, y recibid un saludo :-)
>>>
>>
>>
>> A ver tienes una aplicación web con OL que consume datos vectoriales
>> (JSON) y ya estás consumiendo información en imágenes bien WMS o usando
>> el protocolo de MapServer.
>>
> 
> Sí, estoy sirviendo datos catastrales con Mapserver vía WMS y
> polígonos sueltos directamente a través de una URL que me proporciona
> respuesta en formato JSON
> 
>> Ahora quieres superponer imágenes, ¿de qué tipo? son ortofotos, son
>> tiles pregenerados por otra herramienta, mapas escaneados, no sé...
>>
> 
> Recortes de una ortofoto de gran resolución, en formato GeoTiff. O
> sea, imágenes GeoTiff, al fin y al cabo. No demasiado grandes (del
> orden de KB, o unos pocos MB máximo)
> 
> 
>> Dependiendo de la naturaleza de tu dato de partida y del potencial
>> número de usuarios te interesará una cosa u otra, aunque si tienes un
>> MapServer ya montado no hay muchos casos de uso que no puedas resolver
>> con esa bestia parda :-)
>>
> 
> Pues por profundizar un poco más, en la aplicación se autentifican
> usuarios, y una vez dentro, se carga un mapa con una capa base sobre
> la que se superponen algunos datos vectoriales y también algunas
> imágenes georeferenciadas. Cada usuario podrá ver "sus" polígonos y
> "sus" imágenes sobre el mapa, pero no las de los demás.
> 
> Con los datos vectoriales, OpenLayers llama directamente a una url que
> busca en una base de datos todos los polígonos relacionados con ese
> usuario y los devuelve en formato JSON, que luego OpenLayers se
> encarga de mostrar.
> 
> Aparte de eso, también se sirve información catastral (parcelas)
> almacenada en PostGIS, vía WMS (Mapserver). Esto ya genérico, para
> todos los usuarios registrados (se superpone sobre la capa base,
> igualmente, pero se puede desactivar)
> 
> Entonces el caso de uso es cómo servir esas pequeñas imágenes, que
> también van asociadas a usuarios, igual que los polígonos. ¿Vía WCS
> con Mapserver, directamente...?
> 
> Saludos,


No, WCS no está pensado para ser utilizado en un visor web, deberías
usar WMS o directamente tirar del protocolo de MapServer.

En MapServer puedes meter parámetros extra en la url que luego puedes
utilizar en tu mapfile.

Si esas imágenes están georreferenciadas y no cambian demasiado en el
tiempo, se me ocurre lo siguiente:

Generar una carpeta por usuario (usando algún tipo de id)

Generar para cada carpeta un índice de las imágenes usando el comando de
gdal para generar índices en shapefiles.

En el mapfile de mapserver configurar una capa raster que tenga en la
ruta al archivo índice la parametrización por id. Puedes tener un índice
vacío como valor por defecto para que no falle.

En OL establecer la URL del servicio introduciendo ese parámetro en
función del usuario de la aplicación.



Hay otras maneras supongo, como generar tantas capas WMS como usuarios,
o cargar un mapfile diferente en función del usuario trabajando la
reescritura de url en tu servidor web (mod_rewrite en Apache p.ej.).

Todo esto es usando el cgi de MapServer, si te metes a programar en PHP
o Python puedes hacer todo esto y mucho más, claro, aunque lo pagarás
también en rendimiento.

Recuerda que desde hace alguna versión de MapServer se pueden hacer
includes de uno ficheros en otros, así que puedes reutilizar mucha
configuración.

Todo lo que he dicho está en la docu de MapServer y GDAL, no hace falta
que te busque los enlaces.

Espero haberte dado alguna idea, ánimo.

Saludos.

-- 
Jorge Gaspar Sanz Salinas
http://es.osgeo.org
http://jorgesanz.net


More information about the Spanish mailing list