J'ai une application web, écrite en utilisant Angular.js et angular-leaflet-directive, qui affiche une sélection de routes sur une carte. J'ai inclus quelques marque-pages pour faciliter la navigation vers certaines zones et donc baser la navigation sur l'étendue de la carte en utilisant les attributs center
et zoom
.Est-il possible d'utiliser simultanément les attributs center et bounds dans Leaflet.js?
Je suis maintenant comprenant également la fonctionnalité de déterminer si une route est visible dans la mesure actuelle de la carte, en utilisant:
map.getBounds().contains([roadLatA, roadLngA]) || map.getBounds().contains([roadLatB, roadLngB])
, où se réfèrent A et B aux points d'extrémité d'une route.
Cela fonctionne parfaitement au chargement de la page mais après toute sorte d'interaction (par exemple glisser, zoom événements) lorsque getBounds()
est appelée à nouveau, il retourne la même LatLng pour chaque coin de la boîte englobante, qui sont les valeurs qui sont définies comme les coordonnées center
par défaut. Après beaucoup de refactoring je ne peux pas trouver un moyen d'incorporer à la fois center
et getBounds()
avec succès.
Est-il possible ou existe-t-il une limitation dans la directive angulaire-leaflet ou leaflet.js, ce qui signifie que les deux méthodes de définition de l'étendue de la carte entrent en conflit les unes avec les autres?
Le comportement 'getBounds' que vous décrivez est très étrange. Avez-vous une chance de partager plus de code, reproduisant éventuellement votre problème en ligne? (par exemple sur Plunker) – ghybs