длина полилинии между двумя точками

0 голосов
спросил 26 Апр, 06 от sschainik (4,900 баллов) в категории Программные продукты Esri

Людииииииииии помогите пожалуйста.

Есть полилиния и две точки находящиеся на ребре этой линии. Как вычислить длину этой линии между двумя точками? Если бы линия была прямая можно было бы вычислить расстояние между точками по кординатам, но проблема в том что линия между этими точками изогнута.

6 Ответы

0 голосов
ответил 27 Апр, 06 от Tatkis (2,420 баллов)

Изогнута в смысле несколько отрезков линии? Или дуга?

Если несколько отрезков, то просто полилинию через ISegmentCollection на сегменты разбейте и посчитайте в цикле сумму длин сегментов image

Удачи!

0 голосов
ответил 27 Апр, 06 от sschainik (4,900 баллов)

одна целая полилиниябез разрывов с несколькими узлами.

image

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

0 голосов
ответил 27 Апр, 06 от Tatkis (2,420 баллов)

Сегментами считаются отрезки между точками. Поэтому сегмент точкой разделяться не может. Или Вас точки отдельно от полилинии?

Сорри, картинку не видно почему-то image

0 голосов
ответил 27 Апр, 06 от sschainik (4,900 баллов)

точки и полилинии отдельные шейп файлы

0 голосов
ответил 28 Апр, 06 от Tatkis (2,420 баллов)

Ну тогда могу предложить такое решение:

1. Определяете сегменты, на которые попадают точки из другого шейп-файла

например, через ISpatialFilter

2. Суммируете длину всех сегментов(полных) между теми, на которые попали точки

3. Добавляете к ним 2 числа - расстояния от Ваших искомых точек до концов сегментов... (цифры 1 и 2 на рисунке)

image

Надеюсь, получится image

Удачи!

0 голосов
ответил 23 Май, 06 от sschainik (4,900 баллов)

Спасибо!

Буду пробовать!
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...