Рисование в слое. Помогите разобраться.

0 голосов
спросил 15 Окт, 09 от vf3000 (140 баллов) в категории Программные продукты Esri
    Доброго времени суток. Возникла такая проблема: Разрабатываю свой инструмент для ArcMap. Застрял на том, что мне необходимо нарисовать линию (на самом деле там будет не линия, а определенный символ, но это потом, для начала просто линия) в конкретном слое. ну и, соответственно, рисование можно выполнять инструментом только после того как была анжата кнопка Start Edit в ArcMap. А как все это получить из Hook'a я пока что не могу придумать. Если кто знает, подскажите, пожалуйста. Язык C#. Заранее спасибо.
P.S. пробовал нарисовать с помощью graphicsContainer.AddElement(), но это не то. Линии рисуются не в слое, а просто так. а нужно в слое....

4 Ответы

0 голосов
ответил 16 Окт, 09 от ppa80 (920 баллов)
>>P.S. пробовал нарисовать с помощью graphicsContainer.AddElement(), но это не то. Линии рисуются не в слое, а просто так. а нужно в слое....


Берёшь слой, на нём получаешь FeatureClass, на FeatureClass вызываешь CreateFeature которая возвращает feature.
Создаёшь объект polyline, добавляешь в него точки.
На feature заполняешь аттрибуты и устанавливаешь ему shape в виде созданного polyline.
Вызываешь на feature метод store.
Примерно так :)
0 голосов
ответил 29 Март, 10 от realturik (140 баллов)
PPA80:

очень я извиняюсь за беспокойство, но нельзя подробнее??
примерный скрипт) язык Python
0 голосов
ответил 29 Март, 10 от TDenis (42,620 баллов)
PPA80:

очень я извиняюсь за беспокойство, но нельзя подробнее??
примерный скрипт) язык Python

Я хоть и не PPA80, но может тоже сгожусь...
Примерный скрипт:
http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=31879
0 голосов
ответил 29 Март, 10 от pooperec (10,820 баллов)
    Доброго времени суток. Возникла такая проблема: Разрабатываю свой инструмент для ArcMap. Застрял на том, что мне необходимо нарисовать линию (на самом деле там будет не линия, а определенный символ, но это потом, для начала просто линия) в конкретном слое. ну и, соответственно, рисование можно выполнять инструментом только после того как была анжата кнопка Start Edit в ArcMap. А как все это получить из Hook'a я пока что не могу придумать. Если кто знает, подскажите, пожалуйста. Язык C#. Заранее спасибо.
P.S. пробовал нарисовать с помощью graphicsContainer.AddElement(), но это не то. Линии рисуются не в слое, а просто так. а нужно в слое....


1. Вам в слое нужно создавать элемент, или это должен быть элемент графики?
2. Если это элемент графики, не легче ли использовать временный набор геометрий (он как показывает опыт - работает быстрее)?
3. Hook, это диспатч (IDispatch), который передаеться в обработке события OnCreate?
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...