Hola Francisco,

Hay una "solución" para hacer la "reproyeción" de capas WMS con OpenLayers.

Como verás esta todo entre comillas por que es algo que te puede funcionar
en algunos casos pero no es procedimiento exacto, ya que lo que se hace es
una simulación de reproyección.

Es muy importante comentar que para simular una reproyección del WMS no es
un método muy exacto ya que estamos haciendo la transformación de
coordenadas de las 4 esquinas de la imagen y eso crea cierta deformación de
la misma. Debido a la deformación veremos que en ocasiones las imágenes
quedan un poco escalonadas.

Como ya lo dije se puede usar bajo tu propio riesgo.

Para esto igual necesitas el Proj4js.

Aquí el código.

//Sobrescribir el método para manejar multiples SRS.
OpenLayers.Layer.WMS.prototype.getFullRequestString = function(newParams,
altUrl) {
var projectionCode = this.map.getProjection();
if (this.params.SRS){
if (this.params.SRS != projectionCode){
var point1 = new OpenLayers.LonLat(newParams.BBOX[0],
newParams.BBOX[1]);
point1 = point1.transform(new OpenLayers.
Projection(projectionCode), new OpenLayers.
Projection(this.params.SRS));
var point2 = new OpenLayers.LonLat(newParams.BBOX[2],
newParams.BBOX[3]);
point2 = point2.transform(new OpenLayers.
Projection(projectionCode), new OpenLayers.
Projection(this.params.SRS));
newParams.BBOX[0] = point1.lon;
newParams.BBOX[1] = point1.lat;
newParams.BBOX[2] = point2.lon;
newParams.BBOX[3] = point2.lat;
}else{
this.params.SRS = (projectionCode == "none") ? null :
projectionCode;
}
}else{
this.params.SRS = (projectionCode == "none") ? null : projectionCode;
}
return OpenLayers.
Layer.Grid.prototype.getFullRequestString.apply(this, arguments);
};

-- 
Saludos,

Bolo
www.geoinquiets.cat
_______________________________________________
Spanish mailing list
http://lists.osgeo.org/mailman/listinfo/spanish
http://es.osgeo.org
http://twitter.com/osgeoes

Responder a