Question

J'utilise la fantastique bibliothèque de cartographie OpenStreetMap leaflet.js depuis un moment maintenant, et je viens de commencer à implémenter ce plugin de clustering.Je l'ai fait fonctionner correctement avec un projet en cours, qui charge différentes couches sur la carte et dans une barre latérale cliquable.

Le seul problème est que si je clique sur un élément de la barre latérale et que le marqueur correspondant se trouve dans un objet de clustering, j'obtiens une erreur.J'ai contourné ce problème en recherchant une erreur (en utilisant try/catch) et en zoomant pour que le calque soit visible comme ci-dessous :

$('.item').click(function() {
    currentlayer = this.id;
...
        try {
            geojson._layers[currentlayer].openPopup();
        } catch(e) {
            map.setView(geojson._layers[currentlayer]._latlng, 16); 
            geojson._layers[currentlayer].openPopup();
        }                   
...
    return false;
});

Le seul problème est que j'obtiens la même erreur lorsque j'essaie d'exécuter la méthode openPopup() après un zoom, bien que, si je clique à nouveau sur la barre latérale, la fenêtre contextuelle s'affiche correctement.Vous pouvez le voir en action ici:

http://www2.lichfielddc.gov.uk/myarea/map2.php

Des idées?

Était-ce utile?

La solution

Ouais, j'ai eu le même problème avec ce plugin.Donc, j'ai développé le mien, qui devrait positionner correctement les popups.Je construis également dans certains événements, vous pouvez donc exécuter du code lorsqu'un cluster est cliqué ou empêcher le niveau de zoom de changer.

https://github.com/cavis/leafpile

En outre, je travaille sur un projet similaire à vous - https://github.com/cavis/slidemapper.C'est un plugin JQuery pour créer un diaporama qui suit sur une carte.Je travaille sur l'intégration de mon plugin de feuille de feu directement dans celui-ci.

Autres conseils

Peut-être avez-vous dû zoomer sur la couche de cluster en utilisant zoomToShowLayer :

https://github.com/Leaflet/Leaflet.markercluster/issues/75

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top