5 votos

Reproyectar GeoJSON en OpenLayers 3

Básicamente estoy tratando (y fallando) de replicar este en OpenLayers 3.

He montado un violín aquí: http://jsfiddle.net/vu8ecy8v/5/

Tengo la impresión de que OpenLayers reproducirá una fuente de GeoJSON "sobre la marcha" si se especifica la proyección del GeoJSON, lo cual estoy haciendo en capas: de ol.map:

    ...
    new ol.layer.Vector({
        title: 'Montana',
        source: montanaSource,
        projection: 'EPSG:4326',
    }), 
    ...

Esto no hace ninguna diferencia. ¿Me estoy perdiendo algo obvio o tengo que reproyectar el GeoJSON de alguna otra manera.

Si cambio el fondo / vista para que sea EPSG:4326 (igual que la fuente) el GeoJSON aparece sin problemas. Estas alternativas están en el violín (comentado).

Cualquier sugerencia o consejo es bienvenido.

Gracias.

7voto

BWW Puntos 302

Después de mirar en los documentos del API en http://openlayers.org/en/v3.0.0/apidoc/ol.source.GeoJSON.html y desmarcando la casilla de verificación Estable Sólo en la parte superior derecha de la bandera, veo una opción de proyección para la fuente.

Es aquí donde tienes que establecer la proyección para decir a OpenLayers 3 que transforme las coordenadas de los datos.

Intentando cambiar tu violín con la parte de abajo, funciona

var montanaSource = new ol.source.GeoJSON({
    object: ......................................,
    projection: 'EPSG:3857'
});

0voto

Mike Puntos 401

¿Ha intentado reproyectar explícitamente sus datos usando ol.proj.transform?

Por ejemplo: var map_centre = ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857');

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