Страница 1 из 5
Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 16 ноя 2011, 22:52
Алексей Дорофеев
Здравствуйте.
Разрабатываю инструмент для 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?
Спасибо.
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 04:50
Serp
На всякий случай стоило бы сходить на
http://www.dataplus.ru/Forum/forum_topics.asp?FID=18
там все таки дилеры и арквьшников много.
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 08:24
Дмитрий Барышников
1) Используйте стандартные элементы управления Windows
2) Созданный VBA макрос ищите в настройке панелей и выносите на любую панель которую пожелаете.

- makros.jpg (30.1 КБ) 12589 просмотров
Пошаговые инструкции по программированию на VB
http://edndoc.esri.com/arcobjects/8.3/G ... ugh1vb.htm
http://edndoc.esri.com/arcobjects/8.3/G ... ugh2vb.htm
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 14:47
Алексей Дорофеев
Спасибо за ссылки, да, это именно то, что нужно, но при попытке реализации возникла следующая проблема: созданный проект почему-то не видит упомянутое в этой инструкции пространство имён ESRI.ArcObjects.Core, и, соответственно, интерфейс ICommand. В списке окна Add Reference выходит много пространств имён, начинающихся с ESRI.ArcGIS.*, а вот насчёт ESRI.ArcObjects.* - нет ничего. Пробовал поиск по всему содержимому диска - файлов с именами на ESRI.ArcObjects.* действительно нигде нет.
В чём здесь может быть дело? Может быть, в том, что ArcGIS установлен не до конца? Или, может быть, всё зависит от версии ArcGIS, и в разных версиях этот компонент может называться по-разному?
На возможный вопрос о том, какие версии чего у меня стоят, отвечу сразу - ArcGIS 9.3.0.1770, Visual Studio 2005 и Windows 7

Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 15:42
Дмитрий Барышников
ESRI.ArcGIS.Core не то?
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 17:48
Алексей Дорофеев
И такого, увы, нет

Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 19:02
Дмитрий Барышников
ESRI.ArcGIS.SystemUI лежит в \Program Files\ArcGIS\com\esriSystemUI.olb
Если уж и это не подойдет, то я теряюсь в догадках.
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 19:08
Алексей Дорофеев
Подошло!

Двигаюсь дальше.
Как же всё везде по-разному называется...
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 19:22
Алексей Дорофеев
Кстати говоря, а есть ли вообще в ArcGIS 9.3 такой инструмент (или что-то похожее): выбирается растровый слой, и при щелчке на экране мышью значение соответствующей ячейки растра записывается в специальную буферную таблицу, и при завершении работы на основе созданной таким образом таблицы-массива строится новый точечный (Point) слой? Или я зря стараюсь?
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 21:32
Дмитрий Барышников
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 23:03
Алексей Дорофеев
То есть я правильно понимаю, что в той теме по ссылке обсуждается программирование инструмента, действие которого в каком-то смысле аналогично действию инструмента Identify на панели иструментов Tools в ArcMap ArcGIS 9.3?
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 17 ноя 2011, 23:18
pooperec
В "коробке" такого нету.
Можно создавать точечный слой, а потом по нему выбирать значения из растрового и записывать в поле точечного. Тут Вам в помощь прийдет моделбилдер.
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 18 ноя 2011, 11:29
Алексей Дорофеев
Возник ещё один вопрос: код не понимает идентификаторов IApplication и IMxApplication, подчёркивая их синим и сопровождая комментарием "Type 'IApplication' is not defined." Пока заменил и то, и другое на ApplicationId. Вопрос только в том, правильно ли это? Всё же IApplication и IMxApplication - разные классы...
P.S. IMxDocument тоже вот не распознаётся...
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 18 ноя 2011, 12:36
Дмитрий Барышников
описание IMxDocument см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI
То есть я правильно понимаю, что в той теме по ссылке обсуждается программирование инструмента, действие которого в каком-то смысле аналогично действию инструмента Identify на панели иструментов Tools в ArcMap ArcGIS 9.3?
И да, и нет. Там надо было высоту в точке узнать, у вас цвет растра.
Re: Вопросы по разработке инструментов в ArcGIS 9.3
Добавлено: 18 ноя 2011, 12:40
Алексей Дорофеев
Bishop писал(а):описание IMxDocument см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI
Спасибо!

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

Но только вопрос в том, не будет ли то, что я разработаю, "велосипедом"?