terreno poligono partes para online iguales fraccionar espacios dividir como comando circulo android google-maps-android-api-2 polygon

android - poligono - como fraccionar un terreno



Cómo dividir un polígono irregular en áreas iguales en el mapa V2 de Google (2)

Estoy desarrollando una aplicación para muestrear Glebe con fines agrícolas. En Eso, un usuario puede seleccionar aa Glebe tocando en el mapa, lo que creará un polígono según el número de toques. Soy capaz de crear ese polígono y obtener el área del polígono. Pero ahora necesito dividirlo en áreas iguales.

Por ejemplo, si el área del polígono es 50m ^ 2, se dividirá en 50 áreas de 1 m ^ 2. La misma funcionalidad se ha hecho en la aplicación Agri Precision . Encuentra abajo la imagen. Necesito dividir el polígono igual que la imagen de abajo y mostrar los puntos dentro de él.

Para obtener Área, estoy usando Google Map Utilty Lib. También tiene algo para Grid Clustering. Quiero lo mismo que la imagen de arriba. En la imagen de arriba, tienen área dividida por 5 Hectáreas. Dado que toda el área es de 85 hectáreas, por lo que debe mostrarse el total de puntos será 17. Así es como funciona.

Así que mi pregunta es:

¿Cómo encontrar esos puntos según el área del polígono en el Mapa para que pueda dibujar estos puntos en el Mapa?


No se ha dado ninguna restricción a la forma de los glebes, por lo que aquí hay una solución que cumplirá con la declaración del problema al construir una descomposición en forma de estrella. Se supone que el polígono es convexo:

  • Selecciona arbitrariamente un vértice principal.

  • Triangule el polígono uniendo el vértice principal a cada borde, dando triángulos de las áreas A1 , A2 , A3 ...

  • Comienza un recorrido alrededor del polígono, desde el vértice principal. Si el primer triángulo es más grande que el área deseada ( A1 > A ), encuentre el punto a lo largo del borde para que subdivida el triángulo en un sub-triángulo del área deseada. Continúe el viaje desde aquí con el sub-triángulo restante (con área A1-A ). De lo contrario, reste el área del primer triángulo del área deseada y continúe el viaje ( A ahora A-A1 ).

Esto es muy similar a dividir una secuencia de intervalos N en la línea real en intervalos K de igual longitud.

Mi conjetura es que una descomposición en forma de estrella no te conviene.


Si su polígono es convexo, se puede obtener una solución resolviendo el siguiente subproblema: "Dado un polígono convexo del área A, encuentre la línea horizontal que lo divide en dos partes de las áreas respectivas B y AB".

Esto se hace fácilmente escaneando los vértices de arriba a abajo con un movimiento horizontal y calculando el área cubierta (esto forma una descomposición del polígono en trapezoides). En algún punto, excederá el área B. Mediante la interpolación lineal entre los vértices actuales y anteriores, determinará la ordenada exacta de la horizontal.

Utilizará la solución de subproblema de la siguiente manera:

1) calcular la raíz cuadrada entera, dejar N, del número de mosaicos deseados, dejar M.

2) Cortar el polígono N veces, obteniendo cada vez el área de N mosaicos. Habrá un resto de fichas MN ^ 2.

3) corte cada rebanada usando verticales para singularizar las fichas finales.

Los azulejos tendrán una forma mucho más aceptable (rectángulos cuando no se encuentran con ningún borde).