[Spanish] WMS Catastro + OpenLayers

Jorge Gaspar Sanz Salinas jsanz at osgeo.org
Sun Jun 12 08:53:58 EDT 2011


El 11/06/2011 17:41, Jorge Arévalo escribió:
> Buenas,
> 
> Estoy intentando superponer una capa del WMS del catastro sobre una
> capa base de GoogleMaps en OpenLayers. Usando la API de GoogleMaps lo
> hice sin problemas, aprovechando que el WMS del catastro ofrece el
> EPSG:3785, pero al intentarlo en OpenLayers me está pasando una cosa
> rara. Me explico:
> 
> Si la capa la defino así en OpenLayers
> 
> 	var catastro_layer = new OpenLayers.Layer.WMS(
> 		"WMS Catastro",
> 		"http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?SERVICE=WMS&VERSION=1.1.1",
> 		{
> 			layers: "catastro",
> 			format:"image/png",
> 			srs: "EPSG:3785",
> 			transparent: false
> 		}
> 	);
> 
> Me aparece la capa WMS como una capa más, elegible en lugar de la de
> Google, pero NO superponible sobre ella. En esta captura se ve lo que
> quiero decir: http://dl.dropbox.com/u/6599273/capa_wms1.png
> 
> En este caso, la petición WMS se genera correctamente. Aquí un ejemplo:
> 
> http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?SERVICE=WMS&VERSION=1.1.1&LAYERS=catastro&FORMAT=image%2Fpng&SRS=EPSG%3A3785&TRANSPARENT=false&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&BBOX=-1721973.3737,3228700.0733875,-1702405.4944625,3248267.952625&WIDTH=256&HEIGHT=256
> 
> Pero no me vale porque yo quiero la capa WMS encima de la de Google
> Maps, no en lugar de ella.
> 
> En cambio, si defino la capa así (solo he cambiado el transparent de
> false a true):
> 
> 	var catastro_layer = new OpenLayers.Layer.WMS(
> 		"WMS Catastro",
> 		"http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?SERVICE=WMS&VERSION=1.1.1",
> 		{
> 			layers: "catastro",
> 			format:"image/png",
> 			srs: "EPSG:3785",
> 			transparent: true
> 		}
> 	);
> 
> La capa WMS ya aparece como una capa superpuesta sobre la capa base
> (como si hubiera especificado "isBaseLayer:false", aunque no lo he
> hecho). En la captura se ve:
> http://dl.dropbox.com/u/6599273/capa_wms2.png
> 
> Lo que sucede ahora con la petición, es que se hace de manera
> incorrecta. Me cambia el epsg:3785 por epsg:900913 (a pesar de que yo
> lo he especificado el 3785, como se puede ver, y el servidor lo
> acepta). Y al cambiarlo, el servidor me devuelve error. Aquí un
> ejemplo de las peticiones que genera en este segundo caso, devolviendo
> error por el epsg:
> 
> http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?SERVICE=WMS&VERSION=1.1.1&LAYERS=catastro&FORMAT=image%2Fpng&SRS=EPSG%3A900913&TRANSPARENT=true&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&BBOX=-1721973.3737,3228700.0733875,-1702405.4944625,3248267.952625&WIDTH=256&HEIGHT=256
> 
> Resumiendo lo que pasa, cuando transparent es 'false', la capa se
> interpreta como capa base, y la petición se genera correctamente. Pero
> cuando transparent es 'true', la capa se interpreta como overlay, que
> es lo que yo quiero, pero la petición se hace de manera errónea,
> porque me cambia el epsg.
> 
> ¿Alguna pista de porqué pasa esto? Estoy usando esta versión de
> OpenLayers directamente http://openlayers.org/api/OpenLayers.js
> 
> Muchas gracias por adelantado, un saludo
> 	
> 

Mira a ver si esto[1] te vale tocayo.Básicamente me he sacado de la
manga un parámetro reproject de este ejemplo[3].

Pero cuidadín que ese parámetro esta deprecated[3] y es más bien un
hack, debería haber una forma de conseguir instanciar un mapa en 3785 y
que catastro funcione, si lo saco te aviso.

[1] http://pastebin.com/gSVFU1id
[2] http://openlayers.org/dev/examples/google-reproject.html
[3]
http://dev.openlayers.org/releases/OpenLayers-2.6/doc/apidocs/files/OpenLayers/Layer/HTTPRequest-js.html#OpenLayers.Layer.HTTPRequest.reproject

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


More information about the Spanish mailing list