5 votos

¿Proyección indefinida en OpenLayers 3?

Nuevo en el uso de OpenLayers 3 Quiero mostrar dos capas de GeoServer: Una capa de imagen y una capa vectorial. Hasta ahora tengo lo siguiente:

// Aerial Tile Layer
        var aerialLayer = new ol.layer.Tile({
            title: "Aerial",
            source: new ol.source.TileWMS({
                url: 'http://server01:8080/geoserver/sf/wms',
                params: {
                    'LAYERS': 'sf:TEST01',
                    'STYLES': ''
                },
                serverType: 'geoserver'
            })
        });

        // View
        var view = new ol.View({
            projection: "EPSG:2236",
            units: 'm'
        });

        // Map
        var map = new ol.Map({
            target: 'map',
            renderer: 'canvas',
            layers: [aerialLayer],
            view: view
        });

Sin embargo, recibo el siguiente error. (Estoy usando el ol-debug.js para ver una mejor descripción del error):

TypeError: la proyección no está definida.

Por alguna razón no le gusta la proyección que estoy utilizando. No sé por qué no encuentra esa proyección.

5voto

flolo Puntos 8757

Ol3 sólo admite "EPSG:4326" y "EPSG:3857". Para cualquier otra proyección necesita proj4js ( http://proj4js.org/ - instalarlo vía npm o manualmente).

Para registrar una nueva proyección se necesitan sus especificaciones descritas por la llamada cadena proj4js. Puede consultarla en http://epsg.io/ .

Para "EPSG:2236" es:

"+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs"

Una vez que hayas incluido el "proj4.js" en tu página puedes simplemente llamar a la función proj4.defs() para registrar la nueva proyección (antes de usarla, por supuesto).

debería verse así:

proj4.defs("EPSG:2236","+proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs");

Sin hacer nada más, Ol3 debería reconocer ahora esta nueva proyección.

0 votos

Simon, esto no funcionó con la versión final de OL3. Por favor, echa un vistazo al nuevo tema que he abierto: groups.google.com/forum/#!topic/ol3-dev/slctHkvhb5o

0 votos

Esto debería funcionar con OL3.5. Su WFS es público para que podamos realizar una prueba con el servicio?

1voto

CynicismRising Puntos 724

La proyección de su vista es EPSG:2236 por lo que la proyección de la capa de su Geoserver debe ser la misma. una de las maneras más fáciles de manejar esto es que usted proporciona re-proyección dentro de Geoserver. Geoserver es poderoso en esta situación. Así que puede ayudarle a establecer una nueva proyección sin ningún tipo de codificación. siga estos pasos: 1. cuando quieras publicar la capa en geoserver, en la primera página, en la sección de "Coordinate Reference Systems" el "Native SRS" se establece en algo.(no es importante) 2. en "Declared SRS" haz click en find y luego busca 2236. y elige el resultado. 3. en "SRS handling" elige "reproject native to declared"

Sólo esto. entonces usted puede disfrutar de su aplicación

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X