Вопросы по разработке инструментов в ArcGIS 9.3
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Вопросы по разработке инструментов в ArcGIS 9.3
Здравствуйте.
Разрабатываю инструмент для ArcGIS 9.3 (ArcMap), позволяющий производить определённые манипуляции с отображаемыми на экране данными. На стадии разработки кода возникли два небольших вопроса технического характера:
1. Предполагается, что когда инструмент будет вынесен на панель Tools, при его выборе на экране будет открываться форма, одним из компонентов которой является таблица для отображения задействованных данных (по аналогии с тем, как, например, реализована таблица для списка исходных слоёв в форме инструмента Merge). Так вот, вопрос, собственно, заключается в том, как это сделать с помощью средств программирования, предоставляемых ArcGIS 9.3? Сама проблема состоит в следующем: в Toolbox'е дизайнера форм ArcGIS 9.3 не нахожу компонента для реализации таблицы такого типа.
2. С помощью VBA, встроенного в ArcMap, уже создан модуль класса (Class Module) с реализацией действий, которые будут выполняться при использовании инструмента. Модуль класса был написан по инструкции в ArcGIS Developer Help, однако в качестве последнего шага инструкции там рекомендуется каким-то образом зарегистрировать созданный инструмент посредством ESRI Mx Commands ("Register the SampleTool to the ESRI Mx Commands component category"). Здесь вопрос, собственно, заключается в том, как и для чего это делается? Как я понимаю, эта так называемая "регистрация" определённым образом связана с размещением инструмента на панели; но так ли это? И вообще - как разместить инструмент на панели Tools?
Спасибо.
Разрабатываю инструмент для ArcGIS 9.3 (ArcMap), позволяющий производить определённые манипуляции с отображаемыми на экране данными. На стадии разработки кода возникли два небольших вопроса технического характера:
1. Предполагается, что когда инструмент будет вынесен на панель Tools, при его выборе на экране будет открываться форма, одним из компонентов которой является таблица для отображения задействованных данных (по аналогии с тем, как, например, реализована таблица для списка исходных слоёв в форме инструмента Merge). Так вот, вопрос, собственно, заключается в том, как это сделать с помощью средств программирования, предоставляемых ArcGIS 9.3? Сама проблема состоит в следующем: в Toolbox'е дизайнера форм ArcGIS 9.3 не нахожу компонента для реализации таблицы такого типа.
2. С помощью VBA, встроенного в ArcMap, уже создан модуль класса (Class Module) с реализацией действий, которые будут выполняться при использовании инструмента. Модуль класса был написан по инструкции в ArcGIS Developer Help, однако в качестве последнего шага инструкции там рекомендуется каким-то образом зарегистрировать созданный инструмент посредством ESRI Mx Commands ("Register the SampleTool to the ESRI Mx Commands component category"). Здесь вопрос, собственно, заключается в том, как и для чего это делается? Как я понимаю, эта так называемая "регистрация" определённым образом связана с размещением инструмента на панели; но так ли это? И вообще - как разместить инструмент на панели Tools?
Спасибо.
-
- Участник
- Сообщения: 94
- Зарегистрирован: 05 июл 2010, 07:58
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
На всякий случай стоило бы сходить на http://www.dataplus.ru/Forum/forum_topics.asp?FID=18
там все таки дилеры и арквьшников много.
там все таки дилеры и арквьшников много.
Жизнь - это эксперимент, поставленный на себе.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Вопросы по разработке инструментов в ArcGIS 9.3
1) Используйте стандартные элементы управления Windows
2) Созданный VBA макрос ищите в настройке панелей и выносите на любую панель которую пожелаете. Пошаговые инструкции по программированию на VB
http://edndoc.esri.com/arcobjects/8.3/G ... ugh1vb.htm
http://edndoc.esri.com/arcobjects/8.3/G ... ugh2vb.htm
2) Созданный VBA макрос ищите в настройке панелей и выносите на любую панель которую пожелаете. Пошаговые инструкции по программированию на VB
http://edndoc.esri.com/arcobjects/8.3/G ... ugh1vb.htm
http://edndoc.esri.com/arcobjects/8.3/G ... ugh2vb.htm
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Спасибо за ссылки, да, это именно то, что нужно, но при попытке реализации возникла следующая проблема: созданный проект почему-то не видит упомянутое в этой инструкции пространство имён ESRI.ArcObjects.Core, и, соответственно, интерфейс ICommand. В списке окна Add Reference выходит много пространств имён, начинающихся с ESRI.ArcGIS.*, а вот насчёт ESRI.ArcObjects.* - нет ничего. Пробовал поиск по всему содержимому диска - файлов с именами на ESRI.ArcObjects.* действительно нигде нет.
В чём здесь может быть дело? Может быть, в том, что ArcGIS установлен не до конца? Или, может быть, всё зависит от версии ArcGIS, и в разных версиях этот компонент может называться по-разному?
На возможный вопрос о том, какие версии чего у меня стоят, отвечу сразу - ArcGIS 9.3.0.1770, Visual Studio 2005 и Windows 7
В чём здесь может быть дело? Может быть, в том, что ArcGIS установлен не до конца? Или, может быть, всё зависит от версии ArcGIS, и в разных версиях этот компонент может называться по-разному?
На возможный вопрос о том, какие версии чего у меня стоят, отвечу сразу - ArcGIS 9.3.0.1770, Visual Studio 2005 и Windows 7

- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
И такого, увы, нет 

- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Вопросы по разработке инструментов в ArcGIS 9.3
ESRI.ArcGIS.SystemUI лежит в \Program Files\ArcGIS\com\esriSystemUI.olb
Если уж и это не подойдет, то я теряюсь в догадках.
Если уж и это не подойдет, то я теряюсь в догадках.
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Подошло!
Двигаюсь дальше.
Как же всё везде по-разному называется...

Как же всё везде по-разному называется...
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Кстати говоря, а есть ли вообще в ArcGIS 9.3 такой инструмент (или что-то похожее): выбирается растровый слой, и при щелчке на экране мышью значение соответствующей ячейки растра записывается в специальную буферную таблицу, и при завершении работы на основе созданной таким образом таблицы-массива строится новый точечный (Point) слой? Или я зря стараюсь?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
То есть я правильно понимаю, что в той теме по ссылке обсуждается программирование инструмента, действие которого в каком-то смысле аналогично действию инструмента Identify на панели иструментов Tools в ArcMap ArcGIS 9.3?
-
- Интересующийся
- Сообщения: 30
- Зарегистрирован: 02 апр 2009, 11:12
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
В "коробке" такого нету.
Можно создавать точечный слой, а потом по нему выбирать значения из растрового и записывать в поле точечного. Тут Вам в помощь прийдет моделбилдер.
Можно создавать точечный слой, а потом по нему выбирать значения из растрового и записывать в поле точечного. Тут Вам в помощь прийдет моделбилдер.
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Возник ещё один вопрос: код не понимает идентификаторов IApplication и IMxApplication, подчёркивая их синим и сопровождая комментарием "Type 'IApplication' is not defined." Пока заменил и то, и другое на ApplicationId. Вопрос только в том, правильно ли это? Всё же IApplication и IMxApplication - разные классы...
P.S. IMxDocument тоже вот не распознаётся...
P.S. IMxDocument тоже вот не распознаётся...
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Вопросы по разработке инструментов в ArcGIS 9.3
описание IMxDocument см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI
И да, и нет. Там надо было высоту в точке узнать, у вас цвет растра.То есть я правильно понимаю, что в той теме по ссылке обсуждается программирование инструмента, действие которого в каком-то смысле аналогично действию инструмента Identify на панели иструментов Tools в ArcMap ArcGIS 9.3?
-
- Участник
- Сообщения: 98
- Зарегистрирован: 20 ноя 2010, 14:37
- Репутация: 0
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Спасибо!Bishop писал(а):описание IMxDocument см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI


В общем, на этот счёт меня интересует вопрос такого плана: как я уже написал выше, разрабатываю инструмент, работа которого предполагается, что будет заключаться в следующем: на основе "тыканья" мышкой по растру формируется массив точек со значениями параметра, после чего создаётся новый точечный слой с этим массивом в качестве таблицы атрибутов (либо выбранные точки добавляются в существующий). Ну понятно, что желание + терпение + упорство - и напишуBishop писал(а):И да, и нет. Там надо было высоту в точке узнать, у вас цвет растра

Последний раз редактировалось Алексей Дорофеев 18 ноя 2011, 16:45, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: Ahrefs [Bot] и 1 гость