¿Cómo se colocan las etiquetas dinámicamente en una línea o polígono?


9

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).


Supongo que es mejor hacer esto manualmente.
Jonas

Recurso relacionado: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.8844 La complejidad computacional de la colocación de etiquetas cartográficas. La cita incluye otras referencias asociadas.
glennon

Respuestas:




2

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í.


1

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?


0

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.


3
¿Qué pasa con el voto negativo? Un comentario puede ser útil.
Jon Bringhurst

0

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.