2016-11-16 1 views
0

Я хочу получить «подполилину» данной полилинии, которая определяется определенной начальной и конечной точкой (в метрах).Листовка получает субполилинию с определенной начальной и конечной точкой

Например, у меня есть полилиния, которая составляет 500 метров (постройте с использованием 30 координат (не разделенных в одинаковых пространствах)), и я хочу покрасить линию между метром 200 и 300 разным цветом. Возможно ли использовать функции Листовки?

ответ

0

Посмотрите на плагин LineStringSelect здесь: https://github.com/w8r/L.Control.LineStringSelect

С демо (нажмите на 2-х разных местах на ломаной линии):

https://w8r.github.io/L.Control.LineStringSelect

+0

Большое спасибо за ваш ответ! Это выглядит очень хорошо, но, по-видимому, оно ограничено работой пользователя и выбором. Есть ли у вас ключ к использованию выбора с «фиксированными» значениями и без ввода пользователем? – David

+0

@ Давид извините за поздний ответ. Не напрямую, но код будет там, чтобы преобразовать 2 точки в ряд точек вдоль данной полилинии. –

1

Так в основном вы спрашиваете: «Если у меня есть полилинии и значения расстояния, какова точка вдоль полилинии с желаемой длиной-расстоянием до начальной точки линии "?

Этот алгоритм был накрыт множество раз, например:

Алгоритм всегда одинаков: разделить полилинию/linestring в сегменты, измерять длину каждого сегмента, находить точку, применять прямую интерполяцию в сегменте что точка находится.

Имейте в виду, что геометрия в 2D-декартовой плоскости отличается от геометрии на поверхности геоида, особенно когда речь идет о измерении расстояний. Проделайте небольшое исследование по GeographicLib и его методам управления геодезическими линиями.

На ваш вопрос «Возможно ли использовать функции лифтов?», Ответ «no, Листовка не реализует этот алгоритм». Самый простой способ для вас - прочитать исходный код упомянутых плагинов Leaflet в ответах или использовать метод along() из библиотеки Turf.

 Смежные вопросы

  • Нет связанных вопросов^_^