как программно отображать атрибутивную информацию

0 голосов
спросил 30 Июнь, 08 от anka (420 баллов) в категории Программные продукты Esri
Добрый день!
Кто-нибудь может подсказать, как программно отображать в качестве надбисей атрибутивную информацию, подтянутую из Informix. Среда разработки - Delphi 6 (dll пишется под ArcMap 9.2). Необходимо по кнопке отображать на объектах инфу... при этом важна скорость обработки инфы и ее отображения....
Подскажите, кто сталкивался....еще интересует подсвечивание этой инфы при наведении мыши на объект...
Заранее, огромное спасибо....Smile

4 Ответы

0 голосов
ответил 02 Июль, 08 от dwarwood (2,620 баллов)
1) смотрите примеры в esri-документации  по разработке dll
2) вопрос уточните, с чем разобрались и что не получается

0 голосов
ответил 03 Июль, 08 от anka (420 баллов)

Собственно говоря проблем с самой dll нет, она создана, с ней уже работают в течении года (создана своя понель инструментов в ArcMAP, на которой реализованы следующие возможности:

-привязка объекта геобазыданных(MS SQL, ArcSDE 9.2.) к данным информационной системы (Informix),
-синхронизация данных о привязки на случай backup ГБД,
-отображение данных из Informix в ArcMAP при клике по объекту ГБД
-отображение документов по объекту в электронном виде (интеграция с системой документооборота на базе системы Documentum)
-добавлен свой help (по работе с созданными функциями) в главном меню
-и т.д.
 
Появилась необходимость подписывать объекты ГБД на карте атрибутом из Informix (инвентарный номер объекта) по кнопке (в идеале еще и при наведении курсора на объект).
Кнопку создали (это не проблема), а дальше пошли трудности Cry 
пытались различными вариантами хотябы изменить прорисовку объектов (надписи тоже пытались отображать, но потом решили попробовать хотябы изменить прорисовку объектов) - допустим пробовали отображать все объекты при нажатии на кнопку красной штриховкой, но обратно возратить исходную отрисовку не получилось...
Вариантов делалось дофига, точно сказать не могу как и чего, но использовали esriCarto_TLB, интерфейсы IFeatureLayer, IGeoFeatureLayer, IFeatureRenderer...
пытались заменить (или дополнить) существующие обработчики прорисовки своими...заменяются и очень  даже хорошо Smile, но обратно вернуть изначальную прорисовку не удается (чтобы ее убрать приходилось переоткрывать карту без сохранения)....Cry
 
Могу прислать код....только он в последнем варианте уже после безчисленного числа попыток....
как вообще грамотно подменять прорисовку, чтобы можно было откатывать изменения обратно?
 
Заранее спасибо....
 
0 голосов
ответил 04 Июль, 08 от tntman (1,360 баллов)
Для подобных вещей можно попробовать использовать IGraphicsContainer.
По крайней мере я его использую для временного закрашивания объекта...

Для надписей можно попробовать использовать TextElement CoClass, правда я с ним не работал, так что если разберетесь, отпишитесь image
0 голосов
ответил 04 Июль, 08 от anka (420 баллов)

Попробуем.....

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