[Spanish] FW: duda proyeección al añadir wms

Wladimir Szczerban bolosig at gmail.com
Tue May 7 00:24:47 PDT 2013


Hola Juanjo,

Lo mejor y recomendable es que la reproyección la haga el servidor WMS. Si
tu tienes el control del WMS puedes agregar los EPSG que quieras y en
OpenLayers (OL) trabajar siempre con el mismo EPSG así todo te irá mejor.

En el caso que no puedas manipular el WMS puede intentar probar con una
"pseudo reproyección" en OpenLayers. Para esto necesitarás la librería
proj4js. OJO que esto es una chapuzilla que sirve para sortear en estos
casos de que quieres mostrar capas de WMS en diferentes EPSG.

Para esto puedes sobreescribir el getFullRequestString de la capa WMS. Lo
que hace este código es reproyectar las coordenadas de la esquinas de las
imagenes para pedir al WMS los getMap en el EPSG que soporta. Esto en
muchos casos causa que se vean saltos entre teselas y dependiento de la
escala de visualización hay desplazamientos.

Aqui te dejo el código por si lo quieres usar bajo tu propio riesgo, puedes
probar a ver que tal te queda tu mapa.

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);
    };



El 7 de mayo de 2013 02:33, martinmaximilianoflores <
martinmaximilianoflores en yahoo.com.ar> escribió:

> Lo mejor es definir la proyección en el servidor wms, la cual tendría que
> ser
> la misma en la que esta el mapa de OP.
>
> En mapserver podes especificar la proyección en la que servira aunque las
> capas esten en otra.
>
> saludos.
>
>
>
> --
> View this message in context:
> http://osgeo-org.1560.x6.nabble.com/FW-duda-proyeeccion-al-a-adir-wms-tp5051555p5051736.html
> Sent from the OSGeo Spanish Local Chapter mailing list archive at
> Nabble.com.
> _______________________________________________
> Spanish mailing list
> http://lists.osgeo.org/mailman/listinfo/spanish
> http://es.osgeo.org
> http://twitter.com/osgeoes
>



-- 
Saludos,

Bolo
www.geoinquiets.cat
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/spanish/attachments/20130507/72feb1ab/attachment-0001.html>


More information about the Spanish mailing list