Передача данных точечным объектам.

0 голосов
спросил 29 Июнь, 09 от BardaK (1,200 баллов) в категории Программные продукты Esri
    Необходимо передать атрибуты из полигона точечным объектам, который находится в границах полигона.

9 Ответы

0 голосов
ответил 29 Июнь, 09 от Vadim (28,120 баллов)
Spatial join
0 голосов
ответил 29 Июнь, 09 от BardaK (1,200 баллов)
   Спасибо, работает.
0 голосов
ответил 29 Июнь, 09 от geologic (39,860 баллов)
5+++ за ответ и его восприятие!
Давно не встречал такого, честно :D
0 голосов
ответил 01 Июль, 09 от Stvan (7,620 баллов)
:)
0 голосов
ответил 03 Июль, 09 от BardaK (1,200 баллов)
0 голосов
ответил 03 Июль, 09 от Vadim (28,120 баллов)
Ничего не имею против автора статьи, но действительно выглядит "сурово" )))) http://gis-lab.info/forum/viewtopic.php?t=3104
 
Алгоритм совершенно не оптимизирован, непонятно зачем делать лишние действия, если все функции уже зашиты в один инструмент. Кстати Spatial join прекрасно работает не только с шейп-файлами, но и с другими фича-классами.
Задача стоит передать атрибуты из полигонов точкам, чтобы на выходе также остались только точки пересекающиеся с полигонами.
Выполнять select by location и уж тем более start editing точечной темы не нужно! Spatial join поддерживает как outer join так и inner join, то есть оставляет только нужные точки, которым передаются атрибуты от полигонов.
Сразу запускаем spatial join, указываем входные и выходные данные, убираем галочку с Keep All, удаляем ненужные поля, устанавливаем топологическое правило (пересекаться, содержать и т.д.), задаем радиус если нужно.
Все выполняется также быстро и из командной строки :
SpatialJoin_analysis <target_features> <join_features> <out_feature_class> {JOIN_ONE_TO_ONE | JOIN_ONE_TO_MANY} {KEEP_ALL | KEEP_COMMON} {field_mapping} {match_option} {search_radius} {distance_field_name}
 
0 голосов
ответил 06 Июль, 09 от geologic (39,860 баллов)
2Вадим: IMHO первый ваш совет был лучше :D Недаром же он и помог ;)))
Если серьезно, то и от меня 5 коп. - необязательно запускать Spatial Join из ToolBox, он и из ArcMap прекрасно работает. Только что оттуда с наилучшими впечатлениями об этом инструменте...

А "Select By Location" мне тоже как-то резанул слух. Возможно, это личное ноу-хау для ускорения основного процесса??? Однако никогда такой нужды не было, даже во времена ArcView, сколько ни пользовали этот замечательный тулс.
0 голосов
ответил 06 Июль, 09 от Vadim (28,120 баллов)
2Вадим: IMHO первый ваш совет был лучше :D Недаром же он и помог ;)))
Если серьезно, то и от меня 5 коп. - необязательно запускать Spatial Join из ToolBox, он и из ArcMap прекрасно работает. Только что оттуда с наилучшими впечатлениями об этом инструменте...
Geologic, я конечно после празднования дня рождения, не очень соображаю )))), но что то я ничего из этого не понял??)))  Spatial join, как я уже писал может работать как из ArcToolbox, так и из командной строки. и прекрасно он работает и в ArcMap и в ArcCatalog. Может ты ArcToolbox с ArcCatalog перепутал?
0 голосов
ответил 06 Июль, 09 от geologic (39,860 баллов)
Это камень в автора статьи - я так даже и не знал, что SJ есть в ToolBox ;) Кстати, вспомнили тут общими усильями, SbyLocation и правда применяли во времена ArcView 3.x ПЕРЕД SJ - иначе тормоза случались. А теперь без разницы, поскольку кэш или чтот там прозрачно работает.


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