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

192
Vistas
¿Cómo "explota" la API de Google Elevation una polilínea en puntos equidistantes?

La API de elevación proporcionada por Google utiliza dos parámetros para solicitar la altura a lo largo de una ruta: path y samples . La ruta es la lat y lng de los puntos inicial y final, y las samples son los puntos de muestra a lo largo de una ruta para los que se devolverán los datos de elevación. Entonces, la ruta se divide en un conjunto ordenado de puntos equidistantes a lo largo de la ruta, que se envían de vuelta al cliente como una matriz de lat , lng y elevation para cada punto. Esto puede ser útil para visualizar perfiles de elevación o similares.

He visto otras alternativas de código abierto para la API de Google Elevation, sin embargo, ninguna de ellas tiene una manera fácil de proporcionar un parámetro de samples , por lo que si uno quiere lograr lo mismo, simplemente tiene que "explotar" el camino de alguna manera. múltiples puntos equidistantes y envíe esta matriz como parte de la URL al back-end.

¿Hay alguna biblioteca o algoritmo que deba considerar al dividir la ruta (que generalmente es del tipo LineString / polyline) en puntos equidistantes? En general, ¿cómo debo abordar este problema?

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

0

Ejecuto Open Topo Data y GPXZ , que son alternativas abiertas y pagas (respectivamente) a la API de Google Elevation, ¡y ambas admiten rutas de muestra!

El algoritmo que utilizo se detalla en Puntos de muestreo a lo largo de una ruta de latitud y longitud , y el código de Python para hacer esto en Open Topo Data está aquí en GitHub .

Pero en general, así es como abordar este problema:

  • Calcula la distancia (en unidades lineales como metros) de cada segmento del camino.
  • Sume todo eso para obtener una distancia de ruta total.
  • Para cada muestra s_i :
    • La distancia d_i de la muestra i a lo largo de la ruta es total_path_distance * i / n_samples .
    • Busque el segmento que contiene el punto de muestra como d_segment_start <= d_i < d_segment_end .
    • La ubicación de la muestra s_i es el resultado de viajar a lo largo del segmento identificado en el paso anterior por una distancia de d_segment_start - d_i

Algunas consideraciones prácticas

  • Debe trabajar en unidades lineales (pies, km) en lugar de unidades angulares (lats, lons) cuando se trata de distancias.
  • Los cálculos de distancias son complicados debido a la redondez y los grumos de la tierra, así que use una biblioteca de terceros. No estoy muy familiarizado con javascript, pero después de una búsqueda rápida en Google, parece que el paquete de geodesia sería un buen lugar para comenzar.
  • Tenga cuidado con los lons que se envuelven alrededor de la línea de fecha de +180 a -180, idealmente esto es algo que manejaría la biblioteca.
  • Para viajar a lo largo de un segmento por una cierta distancia, puede proyectar un rumbo desde el punto de inicio por el ángulo entre los dos puntos y acercarse bastante, pero una biblioteca de geodesia de terceros puede tener métodos un poco más precisos para manejar este paso.
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