Как метки динамически размещаются на линии или многоугольнике?


9

Мне было интересно, знает ли кто-нибудь, что такое математика или ресурсы для изучения математики, в поиске идеального положения, масштаба и поворота метки для линии или многоугольника на карте?

Максимум, что у меня есть, - это найти центроид многоугольника (хотя он не идеален для вогнутых многоугольников).


Я думаю, что это лучше всего делать вручную.
Джонас

Связанный ресурс: citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.8844 Вычислительная сложность размещения картографической метки. Цитирование включает в себя другие связанные ссылки.
Гленнон

Ответы:




2

Centroid никогда не является ответом, но это хорошая первоначальная догадка. Алгоритмы, которые легче всего реализовать и которые решают подобные проблемы, обычно работают, пытаясь воспроизвести несколько воспроизводимых псевдослучайных положений и как-то их оценить, сохраняя лучшие места. Для дальнейшего чтения я бы начал с изучения алгоритмов упаковки бина и взял его оттуда.


1

Маркировка - это неприятное усилие.

В небольшом масштабе: у вас есть проблемы с перекрытием меток, поэтому какую из них вы удалите или все должны быть показаны.

В больших масштабах: если у вас большой полигон, где вы отображаете метку. Вы показываете это несколько раз.


0

Я видел карты, где они просто вычисляют ограничивающую рамку для сложного многоугольника и размещают метку в центре этого.

Для простых линий обычно это просто середина двух конечных точек.

Я полагаю, что это действительно зависит от того, какими будут ваши данные и насколько важно расположение метки.


3
Что случилось с понижением? Комментарий может быть полезен.
Джон Брингхерст

0

Вы можете проверить код в GeoTools и GeoServer, если вы пользуетесь Java - это постоянно развивающаяся проблема, так как люди продолжают придумывать новые угловые случаи, которые требуют исправления.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.