Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

114
Vistas
Cómo encontrar la latitud/longitud más cercana desde la gran matriz json de lat/lng

Estoy creando un sitio web que localiza tu dispositivo y te muestra 4 de los parquímetros más cercanos.

Para los parquímetros, estoy usando una API para recuperar la latitud y la longitud y estoy usando la API de direcciones de Google para establecer las coordenadas de inicio y destino y generar una ruta. Todos los parquímetros están en un radio de ~2,5 km.

Ahora, para encontrar los 4 parquímetros más cercanos, estaba pensando en ejecutar una fórmula y revisar cada registro de la API para encontrar los 4 más cercanos. Pero (creo) eso llevaría demasiado tiempo de procesamiento para cargarlo en un sitio web, por lo que lento. Hay casi 1200 registros en la API.

Para calcular la ruta a través de coordenadas lat/lng estoy usando el siguiente código:

 fetch('https://data.stad.gent/api/records/1.0/search/?dataset=locaties-parkeerautomaten-gent&q=&rows=\ 1200&facet=parkeertariefzone&facet=bewonerszone&facet=betaalmodus&facet=status&facet=categorie') .then(response => response.json()) .then(json => { let start = new google.maps.LatLng(51.053788, 3.730767); let end1 = new google.maps.LatLng(json.records[0].geometry.coordinates[1], json.records[0].geometry.coordinates[0]); let request = { origin: start, destination: end1, travelMode: 'WALKING' }; let display = new google.maps.DirectionsRenderer(); let services = new google.maps.DirectionsService(); services.route(request, function (result, status) { if (status == 'OK') { display.setDirections(result); } }) let map1 = new google.maps.Map(document.getElementById("map1")); display.setMap(map1); });

PREGUNTA: ¿Cuál es, en su opinión, la mejor manera de calcular y devolver los 4 puntos de latitud/longitud más cercanos en una API con casi 1200 registros con un radio de ~2,5 km usando JavaScript?

No estoy muy seguro de cómo abordar este desafío, cualquier respuesta sería apreciada.

NOTA: Es mi primera pregunta/publicación, así que si me perdí algo o hice algo estúpido, házmelo saber, gracias de antemano :)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En caso de que alguien venga aquí buscando una solución, cómo lo resolví es mediante el siguiente código:

 for (let i = 0; i < json.length; i++) { if ((Math.abs(json[i].coordinates[1] - start.lat)) + ((Math.abs(json.[i].coordinates[0] - start.lng))) < sumLatLng) { closest = json[i]; sumLatLng = (Math.abs(json.[i].coordinates[1] - start.lat)) + ((Math.abs(json.[i].coordinates[0] - start.lng))) } else { console.log("error"); } }

Básicamente, lo que hago es tomar la suma de la latitud y longitud iniciales, restar la latitud y longitud de cada registro de la API y tomar el absoluto del resultado. Si el resultado es más pequeño que el resultado anterior, eso significa que está más cerca.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda