Создание дублирующих элементов на основе преобразования многие-к-одному связанной таблицы?


11

Мне нужно создать дубликаты объектов (в данном случае участков), используя связанную таблицу для заполнения полей идентификаторов. По сути, мне нужно использовать связанную таблицу владельцев участков для создания дубликатов участков, каждый из которых имеет свой уникальный идентификатор из связанной таблицы владельцев. Соответствующая таблица уже содержит ссылку «многие к одному» на участки, я просто хочу установить отношение «один к одному» между владельцами и участками путем создания дубликата участка для каждой записи владельца.

Я использую ArcGIS Desktop 9.3.1.


2
Почему вы не можете просто присоединить таблицу объектов к таблице владельцев? Вы по-прежнему будете получать несколько строк на фигуру (так как это будет отношение один-ко-многим, функция к владельцу), что, по сути, означает, что вы увидите отношение «один к одному» при просмотре табличных данных ,
Майкл Тодд

Какое программное обеспечение? какая версия?
Джей Камминс

ArcGIS 9.3.1 Я хотел бы на самом деле дублировать геометрию, а не просто видеть 1: 1 в таблице.
Джоди

Поскольку каждый многоугольник будет перекрывать многоугольник точно такой же формы, вы действительно не получите никакой выгоды (которую я могу себе представить) от наличия нескольких фигур. Вы делаете это для чего-то другого, кроме символизации объектов на карте?
Майкл Тодд

1
Не использовать для символизирующих функций. Делая повторяющиеся фигуры, я хочу получить возможность находить пространственное местоположение объекта в связанной таблице (если можно так сказать, обратное или многозначное). А благодаря тому, что дублирующие фигуры «накладываются» друг на друга, можно использовать инструмент выбора или идентификации для захвата всех записей без необходимости поиска записей в связанной таблице.
Джоди

Ответы:


9

Я только что сделал это с нашей функцией посылки и таблицей владельцев.

Я сделал объединение в Посылках для Владельцев и выбрав «Сохранить только совпадающие записи» - сразу после объединения - создаю «Копировать объекты» из ArcToolbox - и он будет дублировать все участки, для которых есть владельцы.

Это сработало для меня .... наконец-то ...


5

В ArcMap 10 используйте MAKE QUERY TABLE. Сначала убедитесь, что таблица и класс пространственных объектов находятся в одной базе геоданных. Инструмент MAKE QUERY TABLE создаст векторный слой, поэтому вам придется использовать COPY для создания постоянного класса пространственных объектов. Затем вы можете экспортировать этот класс объектов в шейп-файл.


Похоже, это «правильный» способ сделать это, если вы не просто хотите таблицу, но хотите, чтобы полигоны тоже дублировались. Если вы хотите выводить векторный слой, вы должны сначала добавить векторный слой (и не забудьте включить «layer.Shape» в качестве выбранной переменной), и вы не сможете просмотреть его, пока не скопируете / экспортируете его ... но он отлично справляется с объединением таблиц с полигонами.
Ор

2

Мы используем пространственное представление в SDE для достижения аналогичного результата. В нашем случае это потому, что у нас есть участки с несколькими владельцами (квартиры, таунхаусы и т. Д.). Мы импортируем файл в SDE на ночной основе, который содержит всех владельцев собственности в округе, каждый из которых имеет уникальный идентификатор, связанный с определенной посылкой. Мы создаем пространственное представление, используя эту таблицу и наш класс объектов полигонов участков. Результатом является пространственное представление со сложенными участками, по одной для каждого отдельного владельца. Когда вы идентифицируете этот слой в ArcMap, вы получите результат для всех владельцев. Мы находимся на Arc 9.3.1. Этот слой был очень полезным для нашего налогового департамента.


К сожалению, нет SDE или INFO. Я думаю, что это невозможно в ArcView?
Джоди

С ArcMap у вас должна быть лицензия ArcSDE, которую вы можете подключить к SQL Server Express. Вы должны быть в состоянии поместить свой класс объектов участков и таблицу владельцев в базу данных, создать пространственное представление, а затем снова выдвинуть его обратно в виде шейп-файла или персональной / файловой базы геоданных (размотать связь).
mwalker

2

Мадс Гренс ответ работает отлично.

  1. Вы присоединяете свою таблицу владельцев к своей таблице посылок с включенной опцией хранить только совпадающие записи.

  2. Используйте Скопировать объекты в ArcToolbox (Инструменты управления данными -> Функции), чтобы скопировать ваши участки в новый класс объектов. Новый класс объектов содержит каждую посылку один раз для каждого владельца, а это означает, что если у посылки есть два владельца, посылка будет отображаться два раза в новом классе объектов - она ​​просто дублируется с помощью инструмента копирования объектов.

Все это вы можете вставить в модель в Model Builder - вы найдете Добавить объединение в Инструменты управления данными -> Объединения. Затем модель можно запускать каждый раз, когда обновляются ваши базовые данные.


Превосходно! Я только что попробовал ваш метод, и он отлично работает. Вы знаете, почему это работает? Я счастлив, что это делает, однако; Я в недоумении для объяснения. Мне бы очень хотелось понять логику работы, так как она, похоже, не документирована.
Брент Эдвардс

Могу я просто проверить. Должен ли ваш слой «Возможности» быть связан с таблицей, прежде чем соединить таблицу с «Объектами»? Я пробовал оба, и оба не работают.
Хауэйцер


0

Просто выберите участки, которые вы хотите продублировать (хорошо подойдет условие 'where in'), и создайте новый шейп-файл выделения. Объедините два файла. Готово.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.