Вопросы по разработке инструментов в ArcGIS 9.3

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Вопросы по разработке инструментов в 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?

Спасибо.

Serp
Участник
Сообщения: 94
Зарегистрирован: 05 июл 2010, 07:58
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Serp » 17 ноя 2011, 04:50

На всякий случай стоило бы сходить на http://www.dataplus.ru/Forum/forum_topics.asp?FID=18
там все таки дилеры и арквьшников много.
Жизнь - это эксперимент, поставленный на себе.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Дмитрий Барышников » 17 ноя 2011, 08:24

1) Используйте стандартные элементы управления Windows
2) Созданный VBA макрос ищите в настройке панелей и выносите на любую панель которую пожелаете.
makros.jpg
makros.jpg (30.1 КБ) 12503 просмотра
Пошаговые инструкции по программированию на 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

Сообщение Алексей Дорофеев » 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 :)

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Дмитрий Барышников » 17 ноя 2011, 15:42

ESRI.ArcGIS.Core не то?

Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 17 ноя 2011, 17:48

И такого, увы, нет :(

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Дмитрий Барышников » 17 ноя 2011, 19:02

ESRI.ArcGIS.SystemUI лежит в \Program Files\ArcGIS\com\esriSystemUI.olb
Если уж и это не подойдет, то я теряюсь в догадках.

Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 17 ноя 2011, 19:08

Подошло! :) Двигаюсь дальше.
Как же всё везде по-разному называется...

Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 17 ноя 2011, 19:22

Кстати говоря, а есть ли вообще в ArcGIS 9.3 такой инструмент (или что-то похожее): выбирается растровый слой, и при щелчке на экране мышью значение соответствующей ячейки растра записывается в специальную буферную таблицу, и при завершении работы на основе созданной таким образом таблицы-массива строится новый точечный (Point) слой? Или я зря стараюсь?


Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 17 ноя 2011, 23:03

То есть я правильно понимаю, что в той теме по ссылке обсуждается программирование инструмента, действие которого в каком-то смысле аналогично действию инструмента Identify на панели иструментов Tools в ArcMap ArcGIS 9.3?

pooperec
Интересующийся
Сообщения: 30
Зарегистрирован: 02 апр 2009, 11:12
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение pooperec » 17 ноя 2011, 23:18

В "коробке" такого нету.

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

Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 18 ноя 2011, 11:29

Возник ещё один вопрос: код не понимает идентификаторов IApplication и IMxApplication, подчёркивая их синим и сопровождая комментарием "Type 'IApplication' is not defined." Пока заменил и то, и другое на ApplicationId. Вопрос только в том, правильно ли это? Всё же IApplication и IMxApplication - разные классы...

P.S. IMxDocument тоже вот не распознаётся...

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

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?
И да, и нет. Там надо было высоту в точке узнать, у вас цвет растра.

Алексей Дорофеев
Участник
Сообщения: 98
Зарегистрирован: 20 ноя 2010, 14:37
Репутация: 0

Re: Вопросы по разработке инструментов в ArcGIS 9.3

Сообщение Алексей Дорофеев » 18 ноя 2011, 12:40

Bishop писал(а):описание IMxDocument см. в ESRI.ArcGIS.ArcMapUI
описание IApplication cм. в ESRI.ArcGIS.Framework
описание IMxApplication см. в ESRI.ArcGIS.ArcMapUI
Спасибо! :) Буду теперь поиском по каталогу смотреть, чтобы не задавать здесь однотипных вопросов :)
Bishop писал(а):И да, и нет. Там надо было высоту в точке узнать, у вас цвет растра
В общем, на этот счёт меня интересует вопрос такого плана: как я уже написал выше, разрабатываю инструмент, работа которого предполагается, что будет заключаться в следующем: на основе "тыканья" мышкой по растру формируется массив точек со значениями параметра, после чего создаётся новый точечный слой с этим массивом в качестве таблицы атрибутов (либо выбранные точки добавляются в существующий). Ну понятно, что желание + терпение + упорство - и напишу :) Но только вопрос в том, не будет ли то, что я разработаю, "велосипедом"?
Последний раз редактировалось Алексей Дорофеев 18 ноя 2011, 16:45, всего редактировалось 1 раз.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и 1 гость