2 votos

¿Cómo centrar el mapa en un marcador KML con OpenLayers 3?

Estoy usando OpenLayers 3 para mostrar mi capa KML en el mapa. Mi KML contiene dos marcadores de posición, uno contiene una línea de puntos y el segundo es un punto, así:

            Asset 5

                Ruta

                <LineStyle>
                    <color>41FA7800</color>
                    <width>2.5</width>
                </LineStyle>

                0
                1
                relativeToGround

                    ... muchísimas coordenadas ...

            Ubicación actual
            Ubicación actual 
             50.1384717,11.2500542 

Me gustaría centrar el mapa en la posición del segundo marcador de posición de Punto.

¿Cómo puedo hacer esto?

1voto

Elliott Maynard Puntos 11

Crear la capa vectorial:

var vector = new ol.layer.Vector({
   source: new ol.source.KML({
       projection: 'EPSG:3857',
       url: 'http://path/to/your/data.kml'
   })
});

Agregarlo al mapa OpenLayer 3:

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        }), vector
    ],
    view: view
});

Y luego esperar hasta que la capa esté lista para acceder a las coordenadas de su segunda característica y usarlas para centrar la vista (tomado de eventos de carga de capa en OpenLayers 3):

var listenerKey = vector.getSource().on('change', function(e) {
    if (vector.getSource().getState() == 'ready') {
        view.setCenter(vector.getSource().getFeatures()[1].getGeometry().getCoordinates());
        view.setZoom(5);
        vector.getSource().unByKey(listenerKey); // Desconectar
    }
});

He creado este JSFiddle como referencia.

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