Объединение линий

0 голосов
спросил 17 Май, 10 от Karapuzekee (480 баллов) в категории Программные продукты Esri
Всем доброго времени суток.
Посоветуйте и/или покажите пожалуйста, как можно реализовать следующую задачу...

Имеется шейп-файл с линиями. Линии следуют друг за другом, может быть так, что отдельные линии следующие друг за другом имеют одинаковые длины.
Задача:
Необходимо создать кнопку (с помощью VBA), при нажатии на которую появится окно с выбором линий одной длины, которые можно объединить в одну бОльшую. И следовательно, объединить выбранные линии в одну
(линии должны быть обязательно друг за другом).


p.s. я только студент, был бы очень благодарен за помощь.

18 Ответы

0 голосов
ответил 18 Май, 10 от pooperec (10,820 баллов)
Б??, зачем код?
Ну да ладно (я ВБА не знаю, но тем не менее скажу)..
Dim xxx as double
Set xxx = ([Shape] as IPolyline).Length
0 голосов
ответил 18 Май, 10 от Karapuzekee (480 баллов)
Спасибо большое.

0 голосов
ответил 24 Май, 10 от Karapuzekee (480 баллов)
Новый вопрос. Как программно (CSh) объединить полилинии? В смысле, что сначала выбираются линии посредством выделения курсором, а потом при нажатии кнопки инструмента происходило объединение выделенных объектов в один.

В справке наткнулся на метод Merge.
public IFeatureClass Merge
(

IArray tables,
ITable fieldsTable,
IFeatureClassName outputName
);

подскажите, я в правильном направлении двигаюсь? и если не сложно дайте совет, как реализовать написанное выше.
0 голосов
ответил 24 Май, 10 от TDenis (42,620 баллов)
Нет.
Допустим у вас уже есть несколько полилиний.
Варианты:
1. Объединить линии "как есть". Смотрите методы
IGeometryCollection.AddGeometry
ITopologicalOperator.Union

2. Перебирать точки полилиний вручную, чтобы, допустим, аккуратно состыковать их в один фрагмент (путь/path). Перебрать точки можно с помощью интерфейса
IPointCollection

3. Если линии хитрые (всякие там дуги, заданные параметрически), то вместо точек можно перебирать сегменты одной линии и добавлять их к другой. В этом поможет интерфейс
ISegmentCollection
    
0 голосов
ответил 24 Май, 10 от Karapuzekee (480 баллов)
Спасибо Вам Денис.
второй вариант предпочтительнее.

Можете чуть подробнее про IPointCollection?
желательно в коде...

0 голосов
ответил 24 Май, 10 от TDenis (42,620 баллов)
0 голосов
ответил 24 Май, 10 от Karapuzekee (480 баллов)
:D намек понят)

ну я ведь просил сильно ногами не пинать) 1курс все таки) + тех английский хромает :)
0 голосов
ответил 25 Май, 10 от pooperec (10,820 баллов)
TDenis - СПАСИБО!

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