Me preguntaba si alguien sabía las matemáticas involucradas, o los recursos para aprender las matemáticas involucradas, para encontrar la posición, escala y rotación ideales de una etiqueta para una línea o polígono en un mapa.
Lo máximo que tengo hasta ahora es encontrar el centroide para un polígono (aunque no es ideal para polígonos cóncavos).
Respuestas:
Un trabajo de investigación que aborda este difícil problema: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4015429
fuente
Quizás la documentación de la biblioteca de etiquetado PAL sea un buen comienzo para futuras investigaciones. Recomiendo especialmente "De la ubicación de la etiqueta de entidad de punto al etiquetado de mapa" .
fuente
Centroid nunca es la respuesta, pero es una buena suposición inicial. Los algoritmos que son más fáciles de implementar y que resuelven problemas similares generalmente operan probando algunas posiciones pseudoaleatorias reproducibles y calificándolas de alguna manera, manteniendo los mejores lugares. Para leer más, comenzaría leyendo sobre algoritmos de empaque de contenedores y tomándolo desde allí.
fuente
El etiquetado es un esfuerzo desagradable.
A pequeña escala: tiene problemas de superposición de etiquetas, por lo que debe eliminar o debería mostrarse todo.
A gran escala: si tiene un polígono grande, ¿dónde muestra la etiqueta? ¿Lo exhibes varias veces?
fuente
He visto mapas donde solo calculan un cuadro delimitador para un polígono complejo y colocan la etiqueta en el centro de eso.
Para líneas simples, generalmente es solo el medio de los dos puntos finales.
Supongo que en realidad solo depende de qué esperas que sean tus datos y cuán importante es la ubicación de la etiqueta.
fuente
Puede inspeccionar el código en GeoTools y GeoServer si cree que Java es un problema en constante evolución, ya que las personas siguen presentando nuevos casos de esquina que necesitan solución.
fuente