Comment les étiquettes sont-elles placées dynamiquement sur une ligne ou un polygone?

9

Je me demandais si quelqu'un connaissait les mathématiques impliquées, ou les ressources pour apprendre les mathématiques impliquées, pour trouver la position, l'échelle et la rotation idéales d'une étiquette pour une ligne ou un polygone sur une carte?

Le plus que j'ai jusqu'à présent est de trouver le centre de gravité d'un polygone (bien qu'il ne soit pas idéal pour les polygones concaves).

Bob
la source
Je suppose qu'il est préférable de le faire manuellement.
Jonas
Ressource connexe: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.8844 La complexité informatique du placement des étiquettes cartographiques. La citation comprend d'autres références associées.
glennon

Réponses:

2

Centroid n'est jamais la réponse, mais c'est une bonne supposition initiale. Les algorithmes les plus faciles à mettre en œuvre qui résolvent des problèmes similaires fonctionnent généralement en essayant quelques positions pseudo-aléatoires reproductibles et en les marquant d'une manière ou d'une autre, en conservant les meilleurs emplacements. Pour une lecture plus approfondie, je commencerais par lire les algorithmes d'emballage de bacs et je les prendrais à partir de là.

Dandy
la source
1

L'étiquetage est une entreprise désagréable.

À petite échelle: vous avez des problèmes de chevauchement d'étiquettes, alors lequel supprimez-vous ou devrait-il tous être affiché.

À grande échelle: si vous avez un grand polygone, où affichez-vous l'étiquette. L'affichez-vous plusieurs fois.

CrazyEnigma
la source
0

J'ai vu des cartes où ils calculent simplement un cadre de délimitation pour un polygone complexe et placent l'étiquette au centre de celui-ci.

Pour les lignes simples, il s'agit généralement du milieu des deux points de terminaison.

Je suppose que cela dépend vraiment de ce que vous attendez de vos données et de l'importance de l'emplacement de l'étiquette.

Jon Bringhurst
la source
3
Qu'est-ce qui se passe avec le downvote? Un commentaire pourrait être utile.
Jon Bringhurst
0

Vous pouvez inspecter le code dans GeoTools et GeoServer si vous utilisez Java - c'est un problème en constante évolution car les gens continuent de proposer de nouveaux cas d'angle qui doivent être réparés.

Ian Turton
la source