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

263
Vistas
Cómo construir una ruta dentro de un polígono OpenLayer

Yo uso OpeenStreetMap y la librería OpenLayers, necesito construir una ruta dentro del polígono como en el programa mission planner, aquí https://www.youtube.com/watch?v=MhHomssqD7k&ab_channel=AeroHawk a los 2 minutos se puede ver como adentro el polígono marcado con segmentos rojos, el programa construye automáticamente una ruta. ¿Cómo puedo replicar esto? ¿Qué es este algoritmo?

cepilladora de misiones

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

0

Veo que estás hablando de generar una ruta de vuelo de drones dentro de un polígono, calculando las posiciones de los puntos de paso.

ingrese la descripción de la imagen aquí

¡Todo un desafío divertido! Escribiré con palabras cómo funcionaría el algoritmo, ¡pero hacerlo en javascript también sería divertido!

Debería ser posible hacer esto para un ángulo de orientación dado (ajustable), pero sugiero que podría simplificar las cosas inicialmente asumiendo que el dron volará en pases orientados exactamente Este <-> Oeste.

Eso también significa que el punto de inicio es simplemente la esquina más al norte del polígono, es decir, el vértice con la mayor latitud (Dado un polígono con un borde norte como el que se muestra en la imagen, no importa cuál de las dos esquinas superiores es el punto de inicio ). Del mismo modo, el punto de ruta final es sencillo. La esquina más al sur del polígono.

Necesitamos calcular todos los waypoints intermedios. Una serie de ubicaciones a la izquierda y a la derecha para crear este efecto de escalera. Tal vez desee comenzar construyendo dos líneas (o matrices ordenadas de puntos de esquina) que representen los lados izquierdo y derecho. El algoritmo necesita "caminar" por estos lados, por lo tanto, mantenga un punto lastLeft y lastRight que estén ambos inicializados al comienzo de sus líneas. Para ambas líneas, este es el punto de inicio en la parte superior.

Cada "paso a pie" hacia abajo en una línea implicará algún cálculo (¡subfunción!). Serán una "brecha" configurada entre los pases de drones. Esta latitud delta se utilizará en este punto. Para cada paso de caminata, comenzamos desde el último punto (lastLeft o lastRight) y, por lo tanto, tenemos una latitud objetivo. targetLat = lastLeft.lat - gap . En un bucle, podemos caminar hasta el siguiente punto de la línea (esquina del polígono original) si se encuentra dentro del espacio, es decir, la latitud de ese punto es > targetLat. Otro caso límite es si el siguiente punto es en realidad el punto final (¡romper! ¡Hemos terminado!). Pero por lo demás, tenemos un borde que cruza el targetLat. Hacemos el cálculo geométrico para encontrar el punto a lo largo del borde donde cruza el targetLat*. ¡Ese punto es nuestro próximo punto de paso!

*Cálculo geométrico para encontrar el punto a lo largo de una línea que tiene el targetLat? Posiblemente esta parte se pueda hacer con algo como TurfJS , aunque no podría decirte exactamente qué llamada de biblioteca. Pero habiendo resuelto el resto del algoritmo, personalmente probablemente solo usaría las matemáticas lineales del código directamente. Ha conocido el inicio y el final de la línea, por lo tanto, un gradiente conocido. Tómelo y aplíquelo al delta-lat conocido para encontrar el delta-lon.

Necesitamos seguir ese algoritmo para un "paso a pie", caminando por la línea izquierda y luego por la línea derecha, y luego por la línea derecha y luego por la línea izquierda, generando la serie de puntos de paso en forma de escalera hasta el final. ¡hasta el final!

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