полноценный редактор для mapcontrol

0 голосов
спросил 30 Авг, 07 от sschainik (4,900 баллов) в категории Программные продукты Esri
Всем привет
Кто нибудь пытался создать полноценный редактор пространственных объектов? т.е. аналог редактора (editor) в arcmap, со всеми примочками start edit, save edit, snapping, sketch...
Что это за временный зеленый объект, который показывает как будет выглядеть фигура после завершения редактирования зскиза ("finish sketch")?Больше всего интересует вопрос как повторить функционал эскиза и как при приближении к узлу (vertex), изменяется курсор?
Вообщем то как создать свой arcmap?
Есть такой пример только в нем нет sketch
DeveloperKit\samples\Controls\MapControl\MapEditing
    
p.s. совсем забыл желательно для версии 9.0
ежели никак, тогда уж для 9.2
    

6 Ответы

0 голосов
ответил 30 Авг, 07 от new_sergei (2,660 баллов)
Всем привет
Кто нибудь пытался создать полноценный редактор пространственных объектов? т.е. аналог редактора (editor) в arcmap, со всеми примочками start edit, save edit, snapping, sketch...
Что это за временный зеленый объект, который показывает как будет выглядеть фигура после завершения редактирования зскиза ("finish sketch")?Больше всего интересует вопрос как повторить функционал эскиза и как при приближении к узлу (vertex), изменяется курсор?
Вообщем то как создать свой arcmap?
Есть такой пример только в нем нет sketch
DeveloperKit\samples\Controls\MapControl\MapEditing
    
p.s. совсем забыл желательно для версии 9.0
ежели никак, тогда уж для 9.2
    
 

Думаю, что от идеи “полноценного редактора” придётся отказаться. Я тоже долгое время занимался созданием stand-alone приложений на основе MapControla. Многое так и не удалось сделать. Например, при создании объекта в слое внутри MapControla  объект становиться виден только после применения инструмента Pan. И т.д. По-моему, сами ESRI свои контролы затачивают под изображение объектов, но не под их редактирование. Возможно, многое и можно сделать, но проблема в отсутствии документации. Некоторые вещи делаются и с помощью WinAPI гораздо проще и легче, но это уже не ArcObjects.

0 голосов
ответил 30 Авг, 07 от sschainik (4,900 баллов)
Чтоб объект появился после редактирования можно применить IActiveView.Refresh и IVersion.RefreshVersion
Меня всетаки больше sketch интересует. Как работает эта зеленая ерунда?
0 голосов
ответил 30 Авг, 07 от new_sergei (2,660 баллов)
Чтоб объект появился после редактирования можно применить IActiveView.Refresh и IVersion.RefreshVersion
Меня всетаки больше sketch интересует. Как работает эта зеленая ерунда?
 
Прошу прощения за оффтоп, но рефрешы не прокатывают. Проверено.
0 голосов
ответил 02 Сен, 07 от sschainik (4,900 баллов)

а у меня срабатывает. Я програмно создаю на mapcontrol новый объект, сохраняю и завершаю редактирование, после рефреша все появляется

по поводу sketch
только с кодом еще не разобрался, да и модуля utilities.bas нету
0 голосов
ответил 04 Сен, 07 от new_sergei (2,660 баллов)

а у меня срабатывает. Я програмно создаю на mapcontrol новый объект, сохраняю и завершаю редактирование, после рефреша все появляется

по поводу sketch
только с кодом еще не разобрался, да и модуля utilities.bas нету
 
А можно кусочек кода? Желательно на С++...
0 голосов
ответил 06 Сен, 07 от sschainik (4,900 баллов)
на с++ к сожалению нет
закончил лепить черновую dll, пришлось выдирать куски из http://edndoc.esri.com/arcobjects/8.3/default.asp?url=/arcobjects/8.3/Samples/Controls/Commands/Editor/Editor.htm и DeveloperKit\samples\Controls\MapControl\MapEditing

Больше всего интересует вопрос как повторить функционал эскиза и как при приближении к узлу (vertex), изменяется курсор?
    

    это пока сделал не до конца, курсор меняю, а вот зеленый контур объекта, пока нет (лень)

ну и есть вопрос как отловить IConflictClass при мультиредактировании одной версии, при сохранении генереруется ошибка "The version has been redefined to reference a new datastate"? (как то я его задавал только иначе)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...