Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!