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).
Odpowiedzi:
Artykuł badawczy dotyczący tego trudnego problemu: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4015429
źródło
Może dokumentacja biblioteki znakowania PAL jest dobrym początkiem do dalszych badań. Szczególnie polecam „Od umieszczenia etykiety elementu do etykietowania mapy” .
źródło
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.
źródło
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?
źródło
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.
źródło
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.
źródło