Страница 1 из 1

Mapserver: линии - указатели.

Добавлено: 05 июн 2020, 18:53
DakarX
Доброго времени суток. Прошу помощи сообщества:

Имеется такая задача: между двумя символами (точками) провести изогнутую линию со стрелкой на конце.

Вопросы:

1. Как лучше изогнуть линию, заданную двумя точками? (нынешнее решение: нахожу координаты третьей точки, рандомно добавляя от 0.25 до 0.75 от разницы между ординатами и абсциссами точек, после чего разбиваю линию на меньшие отрезки и интерполирую. Но так как разница между ординатами или абсциссами может быть незначительной, то и линия может почти не изогнуться).

2. Как нарисовать стрелки на концах линий средствами Mapserver? (нынешнее решение: используя GEOMTRANSFORM, добавляю на конец линии залитый символ 'V', нахожу угол между двумя последними точками, чтобы повернуть (POLAROFFSET) символ, чтобы стрелка указывала в центр символа на конце линии. Основная проблема: при масштабировании символов, стрелка смещается не по линии, а по углу, который задан, а так как линия кривая - угол меняется и стрелка съезжает с линии).

3. Доп. вопрос по кластеризации: Возможно ли, при кластеризации точек начала и конца линий между собой, заменять линии на линию между кластерами (имеющими новые координаты (между точками в кластере))?

Mapserver 7.7-dev / 7.6.

Приблизительное изображение необходимого:

Изображение