[Geo-inquietos Madrid] WMS Catastro + OpenLayers

Jorge Arévalo jorge.arevalo at deimos-space.com
Sat Jun 11 11:41:30 EDT 2011


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
	

-- 
Jorge Arévalo
Internet & Mobility Division, DEIMOS
jorge.arevalo en deimos-space.com
http://es.linkedin.com/in/jorgearevalo80
http://mobility.grupodeimos.com/
http://gis4free.wordpress.com
http://geohash.org/ezjqgrgzz0g


More information about the Madrid mailing list