2017-08-11 1 views
1

On dirait que si j'appelle map.getBounds à l'intérieur de geocoder, je reçois toujours les résultats précédents. Y at-il un rappel ou quelque chose pour obtenir les limites après que le géocodage vole vers les destinations. Voici mon code:Comment obtenir des limites après l'événement flyto de MapboxGeocoder?

var geocoder = new MapboxGeocoder({accessToken: mapboxgl.accessToken}); 
geocoder.on('result', function(ev) { 

     console.log("CENTER:",ev.result.center); 
     console.log("BOUNDS:",map.getBounds()); 
     //loadByBounds(map.getBounds()); 
    }); 

Répondre

1

Peut-être que vous pouvez réagir à l'événement mooveend en appliquant un écouteur d'événement.

"Mooveend: Fired just after the map completes a transition from one view to another, as the result of either user interaction or methods such as Map#jumpTo."

https://www.mapbox.com/mapbox-gl-js/api/#map.event:moveend

+0

Merci, mais comment appliquer une seule fois et seulement à géocodage, mais pas à tous les événements carte Mooveend? – SERG

+1

Hm bonne question. Peut-être que vous pouvez ajouter un drapeau que vous définirez lorsque le géocodeur aura obtenu les résultats. De plus 'map.once' empêchera l'auditeur de se déclencher plusieurs fois. J'ai fait un jsfiddle rapide: https://jsfiddle.net/andi_lo/cbfsnanw/ –