Leaflet.js – Définir le marqueur sur le clic, la position de mise à jour sur la traînée

Pour un petit projet sur lequel je travaille, je dois être en mesure de placer un marqueur sur un tableau d'image alimenté par un dépliant.js et mettre à jour la position de ce marqueur, s'il est entraîné. J'utilise le code suivant pour essayer cela, mais il échoue. Je reçois l'erreur "marqueur non défini". Je ne sais pas pourquoi ça ne fonctionne pas – peut-être que vous pourriez m'aider? 😉

function onMapClick(e) { gib_uni(); marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'}; map.addLayer(marker); }; marker.on('dragend', function(event){ var marker = event.target; var position = marker.getLatLng(); alert(position); marker.setLatLng([position],{id:uni,draggable:'true'}).bindPopup(position).update(); }); 

Dans l'extrait de code ci-dessus, le marqueur n'est pas défini au moment où le gestionnaire d'événements est ajouté. Essayez ce qui suit lorsque l'auditeur de dragend est ajouté immédiatement après la création du marqueur:

 function onMapClick(e) { gib_uni(); marker = new L.marker(e.latlng, {id:uni, icon:redIcon, draggable:'true'}); marker.on('dragend', function(event){ var marker = event.target; var position = marker.getLatLng(); console.log(position); marker.setLatLng(position,{id:uni,draggable:'true'}).bindPopup(position).update(); }); map.addLayer(marker); }; 

Vous avez également manqué un support à la fin de votre nouvelle ligne L.Marker ().

Vous mettez également la position dans un tableau dans l'appel pour setLatLng mais c'est déjà un objet LatLng .