Zoom et un centre de marqueur sur cliquez dans la fiche
J'ai un problème avec mon dépliant carte. J'ai quelques repères sur ma carte et en cliquant sur l'un, le marqueur est centré. Maintenant, je veux que lorsque l'on clique sur un marqueur, il n'est pas seulement centrée mais je veux faire un zoom sur le marqueur. Quand j'ajoute ce
map.setZoom((16), {animate: true});
à
map.on('popupopen', function(centerMarker) {
var cM = map.project(centerMarker.popup._latlng);
cM.y -= centerMarker.popup._container.clientHeight/2
map.setZoom((16), {animate: true});
map.panTo(map.unproject(cM),{animate: true});
});
mon code le centrage ne fonctionne pas vraiment, car il effectue un zoom avant, mais il n'est pas le centre du repère. Mais tous les autres marqueurs sont centrés si je suis dans le niveau de zoom (16). Que puis-je faire que la carte effectue un zoom sur le marqueur ET le marqueur est centrée aussi bien si je suis à l'extérieur le niveau de zoom de 16 ans? Je suis assez nouveau dans la brochure et jquery...
OriginalL'auteur user3671746 | 2014-07-02
Vous devez vous connecter pour publier un commentaire.
Au lieu d'utiliser
setZoom
etpanTo
, vous pouvez utiliser une seule méthodesetView
avec zoomoption.En fait, cette solution ne fonctionne que parfois. Selon le niveau de zoom que je suis, le zoom ne fonctionne pas toujours et centre le marqueur.. le marqueur est souvent hors de la vue (quelque part en bas) et le popup est ouvert. Je me demande pourquoi..
Quelle est la taille de votre popup? Par défaut, la carte pan le marqueur pour s'adapter à la fenêtre contextuelle à l'intérieur de la carte. la solution de contournement consiste à définir
autopan:false
dans une fenêtre contextuelle.le problème décrit apparaît uniquement lorsque le niveau de zoom est assez élevé (par exemple, 18). alors le marqueur est complètement à l'écart. Si c'est de la carte.setView(la carte.unproject(cM),15, {animer: true}); elle fonctionne bien. Le pop-up est normal, il n'y a qu'un seul mot.
Je pense que c'est parce que cette ligne
cM.y -= centerMarker.popup._container.clientHeight/2
. Qu'est-il censé faire? Vous pourriez être intéressé par leafletjs.com/reference.html#icon-popupanchorOriginalL'auteur neogeomat