пару мелких вопросов

0 голосов
спросил 15 Янв, 10 от Van_Geo (5,560 баллов) в категории Программные продукты Esri
Помогите пожалуйста.
1. Как выбрать объекты одного слоя, которые пересекаются или прикасаются?
2. Как всатавить в колонку количество вершин объекта?

Спасибо

14 Ответы

0 голосов
ответил 22 Янв, 10 от self-improving1 (2,780 баллов)
Да, нужно выбрать объекты, которые соприкасаются с другими определенными объектами, - и все они в одном слое?
Думаю может возможен такой алгоритм:
Сделать дублирующий слой, потом сделать выборку так, чтобы выбрать те которые пересекаются более одного раза.

Тогда Robert вам правильно ответил - все делается через Select by Location
kone4no mojno, ved` tam razreshaetsya vyborka sloev. vot i vybirai tot kotoryi nujen

Я бы предложила такой вариант:
  1. Выбираете "определенные объекты" из Слоя 1
  2. Создаете слой выборки Слой 2 (контекстное меню слоя - Selection - Create Layer From Selected Features) - это получается не полностью дублирующий слой, а только нужные вам объекты
  3. В окне выборки по расположению выбираете объекты из Слоя 1, которые пересекают Слой 2. Выделяются в том числе и ваши исходные "определенные" объекты
  4. Чтобы удалить "определенные" объекты из выборки (оставить только те, что их пересекают), выбираете "убрать из текущей выборки", указываете "are identical to", нажимаете Apply
0 голосов
ответил 22 Янв, 10 от Van_Geo (5,560 баллов)
К сожалению, я не могу выбрать "нужные мне объекты".
Это слой зданий, мне нужно выбрать объекты, которые прикасаются между собой, а отдельно стоящие здания, чтобы не выделялись.
0 голосов
ответил 22 Янв, 10 от Grigoriy (127,020 баллов)
Самый простой способ без написания кода делается в четыре шага:
1. Создаете в классе объектов числовое поле
2. Всем объектам присваиваете 1.
3. Выполняете команду ArcToolBox->Управление данными(Data Management Tools)->Генерализация(Generalization)->Слияние(Dissolve). Команда уберет границы между соседними (перекрывающимися) полигонами. В качестве поля для слияния укажите созданное числовое поле.
4. Выполните команду ArcToolBox->Анализ(Analysis Tools)->Наложение(Overlay)->Пространственное соеденение(Spatial Join). Целевые объекты - класс после слияния, присоединямые объекты - исходный класс. Параметр сопоставления CONTAINS.
В выходном классе объектов получите число присоединившихся объектов. Если оно больше 1, то исходные полигоны пересекались. Далее думаю сможете выделить, то что Вам нужно.

Эту же задачу можно решить, написав правильное выражение на VBScript в калькуляторе. Но для этого нужно знать как писать такие выражения, да и сами объекты ArcObjects придется изучить.
Примеры можно посмотреть тут:
http://arcscripts.esri.com/details.asp?dbid=12224
0 голосов
ответил 23 Янв, 10 от Van_Geo (5,560 баллов)
Спасибо!
Именно то, что мне нужно...
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...