@survivalsuit

Как брать точки на polyline через равные отрезки?

Есть polyline, мне нужно нарисовать на ней n объектов (например маркеров). Заранее неизвестно сколько маркеров, но известно, что надо уместить их на линии через равные отрезки. У меня нет никаких идей, кто поможет?
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
в postgis есть спецмальная функция. Но если вам надо без бд в брузере, то придется искать готовые аналоги или реализовать самостоятельно.
Вообще задача не сложная. Каждый отрезок полилайна имеет определенную длину.
Ваша задача сводится к тому, чтобы отмерять определенное расстояние от начала полилайна и найти точку на этом расстоянии на нужном отрезке.
Вычитаете из расстояния поочередно целые отрезки полилайна, пока есть такая возможность. Так вы найдёте отрезок, на котором будет искомая точка. Дальше этот отрезок нужно разбить в пропорции:
(x2-x)/(x2-x1)=(y2-y)/(y2-y1)
d^2=x^2+y^2

Вот система уравнений, где
x1, x2, y1, y2 - ординаты концов сегмента полилайна.
d - остаток от расстояния, из которого вычли все целые сегменты,
x, y - координаты искомой точки
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
надо считать длину от суммируя расстояния между точками(отрезки), если сумма больше чем то находим точку в последнем отрезке. Простая математика. В документации на модуль геометрии не нашёл таких решений, значит писать ручками(мне лень писать сюда код, делал кое что подобное для электросетевой компании).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы