Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

292
Visualizações
¿Cómo eliminar Leaflet Marker en L.easyButton?

Estoy usando un L.easyButton para agregar y eliminar un marcador de folleto según la ubicación actual. Este es mi código:

 var marker; L.easyButton({ states: [{ stateName: 'on', title: 'Add Marker', onClick: function(btn, map) { map.locate({ setView: true, maxZoom: 16 }); function onLocationFound(e) { marker = L.marker(e.latlng).addTo(map); } map.on('locationfound', onLocationFound); btn.state('off'); } }, { stateName: 'off', title: 'Remove Marker', onClick: function(btn, map) { if (map.hasLayer(marker)) { map.removeLayer(marker); //map.removeControl(marker); } btn.state('on'); } }] }).addTo(map);

El código funciona bien cuando se agrega y elimina el marcador por primera vez. Pero cuando volví a hacer clic en el botón, se puede agregar el marcador, pero no se eliminó.

FYI, el estado del botón se puede cambiar con éxito, solo que la función de eliminación no funciona.

Probé estas dos líneas de código en la función de eliminación, pero no funcionó.

 map.removeLayer(marker);
 map.removeControl(marker);

¿Cómo debo mejorar el código? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Lo que sucede es que las próximas veces que solicita una geolocalización y crea un Marcador correspondiente, en realidad apila su detector de eventos, por lo tanto, crea varios Marcadores en la misma posición.

Por lo tanto, al intentar eliminarlo más adelante, el último se eliminó correctamente, pero todavía hay algunos marcadores en esa posición, lo que da la impresión de que no pasó nada.

Una solución simple consiste en eliminar el detector de eventos después de que se haya utilizado, normalmente con el método .once( .once() (en lugar de .on() ):

 map.once('locationfound', onLocationFound);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda