W jaki sposób etykiety są dynamicznie umieszczane na linii lub wielokącie?


9

Zastanawiałem się, czy ktoś znał matematykę lub zasoby do nauki matematyki, aby znaleźć idealną pozycję, skalę i obrót etykiety linii lub wielokąta na mapie?

Do tej pory najbardziej znajduję środek ciężkości wielokąta (choć nie jest to idealne rozwiązanie dla wielokątów wklęsłych).


Myślę, że najlepiej to zrobić ręcznie.
Jonas

Zasoby powiązane: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.8844 Złożoność obliczeniowa umieszczania etykiet kartograficznych. Cytowanie obejmuje inne powiązane odniesienia.
glennon

Odpowiedzi:




2

Centroid nigdy nie jest odpowiedzią, ale jest to dobry wstępny przypuszczenie. Algorytmy, które są najłatwiejsze do zaimplementowania, które rozwiązują podobne problemy, zwykle działają, wypróbowując kilka powtarzalnych pseudolosowych pozycji i oceniając je w jakiś sposób, zachowując najlepsze miejsca. Do dalszej lektury zacznę od czytania algorytmów pakowania bin i biorę go stamtąd.


1

Etykietowanie to paskudne przedsięwzięcie.

Na małą skalę: masz problemy z nakładaniem się etykiet, więc które z nich usuwasz lub które powinny być pokazane.

Na dużą skalę: jeśli masz duży wielokąt, gdzie wyświetlasz etykietę. Czy wyświetlasz go wiele razy?


0

Widziałem mapy, w których obliczają po prostu obwiednię złożonego wielokąta i umieszczają etykietę na środku tego.

W przypadku prostych linii zwykle jest to tylko środek dwóch punktów końcowych.

Wydaje mi się, że tak naprawdę zależy tylko od tego, czego oczekujesz od swoich danych i jak ważna jest lokalizacja etykiety.


3
Co słychać w głosowaniu? Komentarz może być przydatny.
Jon Bringhurst

0

Możesz sprawdzać kod w GeoTools i GeoServer, jeśli grok java - jest to ciągle ewoluujący problem, ponieważ ludzie wciąż wymyślają nowe przypadki narożne, które wymagają naprawy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.