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

179
Visualizações
obtener la coordenada del control de localización del folleto

trato de extraer la coordenada del usuario con el complemento de control de localización para enviarlo a través de ajax

 var startMarker; var lc = L.control.locate({ position: "topright", layer: startMarker, drawCircle: false, showPopup: false, markerClass: L.marker, }) .addTo(mymap);

cuando apareció el marcador, hago clic para enviar la coordenada de la capa startMarker a través de ajax con este código

 $("button").on("click", (e) => { e.preventDefault(); if (startMarker == null) { alert(`startpoint not defined`); } else { $.ajax({ type: "POST", data: { startlat: startMarker.getLatLng().lat, startlng: startMarker.getLatLng().lng, }, url: "php/find_nearest_path.php", dataType: "json", success: dosomething, error: function () { alert("failed getting respond from server"); }, }); } });

pero el error que recibo es alert(`startpoint not defined`); alguien ahora la forma correcta de obtener la coordenada?

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

0

Cuando pasa su variable startMarker a la opción de layer de L.control.locate (desde el complemento leaflet-locatecontrol ), aún no está undefined .

Por lo tanto el plugin se comporta como si no le hubieras pasado ningún valor a esa opción. Y su comportamiento predeterminado en ese caso es crear su propio grupo de capas interno.

Como parece que necesita verificar el marcador creado una vez que esté disponible, simplemente necesita asignar un grupo de capas a su variable antes de pasarlo a la opción:

 var startMarker = L.layerGroup(); var lc = L.control.locate({ layer: startMarker, }) .addTo(mymap);

Luego, en su condición, compruebe si ese grupo de capas tiene un marcador secundario, en lugar de buscar una asignación:

 var locationLayers = startMarker.getLayers(); if (locationLayers.length === 0) { alert(`startpoint not defined`); } else { // Last position should be represented by one of the last layers // (there may be several layers on same position, should you // have enabled circle and/or compass) var positionMarker = locationLayers[locationLayers.length - 1]; // Do something with positionMarker.getLatLng()... }

Dicho esto, como señaló implícitamente Ivan en los comentarios de la pregunta, dado que parece que necesita el Marcador creado solo para obtener las coordenadas de ubicación, podría obtenerlo del evento locationfound en su lugar. De esa forma, no necesitarías recuperar ningún marcador.

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