Как изучать программирование в ArcGIS?

0 голосов
спросил 23 Март, 10 от Korobkin1 (3,140 баллов) в категории Программные продукты Esri

Есть необходимость в изучении Python и VBA, в частности для написания скриптов под ArcGIS 9.2 Больше интересуют описание объектов и методов, а также взаимосвязи между языком и тулбоксом (тут возникает множество мне непонятных проблем взаимосвязи, как например: в питоне алгоритм работает более менее, а в тулбоксе скрипт не работает). Английский help помогает конечно, но системности учебника ему не хватает.

Может есть нормальная книга или доступный интернет ресурс для изучения? Или где-нибудь курсы проводятся по программированию под ArcGIS?
 
Благодарен всем, кто сможет хоть как-нибудь прояснить этот вопрос!

19 Ответы

0 голосов
ответил 27 Март, 10 от Korobkin1 (3,140 баллов)
TDenis, большое спасибо за участие!
В первом случае у меня все же feature class. Я пытаюсь получить записи из его атрибутивной таблицы.
Советы: "поместить скрипт по нормальному пути - без длинных слов на русском языке" и "название набора в пути не указывается" были весьма уместны в моем случае. Сомневаюсь чтобы первый совет в английском хелпе был прописан.
А в названиях папок вообще пробелы допустимы?
0 голосов
ответил 27 Март, 10 от TDenis (42,620 баллов)
А в названиях папок вообще пробелы допустимы?

Не знаю, не пробовал. Стараюсь избегать подобного, старая привычка.
Проверьте - расскажете.
0 голосов
ответил 27 Март, 10 от geouser (9,040 баллов)
Крайне нежелательно как использовать русский язык (кириллицу) для названий папок и файлов, так и пробелы между словами (визуально их можно заменить на _). Эти два правила сильно упрощают жизнь со всеми программами, разработанными не в России, проверено. Smile

0 голосов
ответил 28 Март, 10 от Korobkin1 (3,140 баллов)
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=AddMessage_method
Он без проблем добавляется и работает. Проверяйте, получается ли у вас его добавить и запустить?
Получилось.
 
Вот мой скрипт, который не могу никак запустить из тулбокса. Подозреваю, что проблема во вводе параметра, т.к. если переменные пути задаю в скрипте руками все работает.
 
import arcgisscripting
gp = arcgisscripting.create()
 
#Первый параметр - набор классов с исходным feature class Admi
#я задаю Parameters --> Data Types = Dataset
#при работе указываю на путь D:\Zis\Shema_K\ZIS2010.mdb\ALLMS
 
pathZIS = gp.getparameterastext(0)
 
#Второй параметр - набор классов с выходным feature class NP
#я задаю Parameters --> Data Types = Dataset
#при работе указываю на путь D:\Zis\Shema_K\Kopyl.mdb\Base
 
pathSHE = gp.getparameterastext(1)
 
X = pathZIS+'Admi'
gp.MakeFeatureLayer_management(X,"Temp")
...многабукфмногабукфмногабукф...
--------------------------------------------
в чем может быть ошибка?
Кстати, запуская скрипт из PythonWin не важно сколько русских букв и пробелов в пути к классу объектов. Важно только использовать \\
0 голосов
ответил 28 Март, 10 от TDenis (42,620 баллов)
в чем может быть ошибка?

Мы, конечно, можем посидеть-погадать, в чём может быть ошибка и какая она может быть.
К примеру, возможно (возможно!) ошибка в том, что когда вы жестко задаете путь к набору в скрипте, вы заканчиваете его знаком "/" (или "\\"), а вот ArcGIS этого не делает. И в этом случае интересная операция (интересная потому что непонятно, почему бы не дать пользователю сразу выбрать feature class):
X = pathZIS+'Admi'
должна быть заменена на
X = pathZIS+'/Admi'

Вобщем, погадать мы, конечно, можем, но было бы гораздо лучше, если бы вы скопировали из диалогового окошка код ошибки и комментарий, выделенный ярким красным цветом.

P.S. Думаю, вам надо создавать отдельную тему по питону, тут это уже оффтоп.
0 голосов
ответил 28 Март, 10 от TDenis (42,620 баллов)
Кстати, запуская скрипт из PythonWin не важно сколько русских букв и пробелов в пути к классу объектов. Важно только использовать \\

Ясно, но все равно к хорошему лучше не привыкать. Перестанет работать в самое неподходящее время. image
0 голосов
ответил 29 Март, 10 от dsavitskiy (10,720 баллов)
Как раз это работает нормально. Недавно был замечен другой глюк: из питона не запускается геопроцессинг, если в имени процедуры есть символ "_".
0 голосов
ответил 29 Март, 10 от TDenis (42,620 баллов)
PascalStyle и английский (на всякий) - выбор джедаев! image
    
0 голосов
ответил 21 Фев, 11 от sheol (140 баллов)

Programming ArcObjects with VBA: A Task-Oriented Approach, Second Edition Kang-Tsung Chang

Мощная книга по программированию в VBA. Вот ссылка, только там зарегистрироваться надо.

http://library.nu/docs/WLAB1C96HD/Programming%20ArcObjects%20with%20VBA%3A%20A%20Task-Oriented%20Approach%2C%20Second%20Edition

Если не получиться и сильно надо могу сбросить.
А вот здесь куча примеров
http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_Doc/COM_Samples_Docs/ArcMap/a59e7d67-4648-4075-a156-36c1937deb9a.htm

По  Python тоже есть книги и примеры, но с ним масса всего в том числе и в самом ArcGIS. Если уж очень надо могу сбросить.Smile

Если кому надо по VBA бросаю на файлообменник
http://upload.com.ua/get/902381621/VB_GIS.rar
до 9 марта как минимум ссылка рабочаяSmile

Но лучше тратить усилия на C#

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