Страница 1 из 1

Как после удаления объекта с карты правильно обновить карту?

Добавлено: 19 мар 2013, 15:08
novice
Суть: по клику на чекбокс удаляется список объектов с карты.
Удаление одного элемента происходит из контейнера карты следующим образом:

Код: Выделить всё

    Map1.ActiveView.GraphicsContainer.DeleteElement(o_elem);
Здесь Map1 это AxMapControl, o_elem - типа IElement

Теперь, объекты исчезают с карты только тогда, когда я перемещаю карту.
Подскажите, пожалуйста, как правильно обновить карту. Чтобы объекты исчезли сразу, а перерисовка карты произошла как можно быстрее и незаметнее для пользователя.

Сейчас обновление происходит следующим образом:

Код: Выделить всё

    Map1.activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

Re: Как после удаления объекта с карты правильно обновить ка

Добавлено: 19 мар 2013, 15:43
novice
Когда обновляю карту так
MainForm.Instance().Map1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

то при удалении объектов с карты тормозов нет.
Но когда рисую объект на карте вижу, что ээкран обновляется(на 1секунду тормоза)

Re: Как после удаления объекта с карты правильно обновить ка

Добавлено: 19 мар 2013, 16:23
novice
есть у кого пример с esriViewGraphicSelection?

Re: Как после удаления объекта с карты правильно обновить ка

Добавлено: 19 мар 2013, 16:56
novice
Собственно интересно вот что: можно ли впринципе перерисовать только ту область, где находится создаваемый объект, а не пол экрана?
По идее у ArcGis должна быть такой функционал. Есть у кого-то хотя бы приблизительная инфа на этот вопрос?

Re: Как после удаления объекта с карты правильно обновить ка

Добавлено: 19 мар 2013, 17:24
novice
Вопрос снят, оказывается в проекте надо было поменять еще пару мест. Кто-то додумался при обновлении подписи объекта перерисовывать всю карту. ******, в нашем секторе квалификация.
Само обновление, если кому надо.

Код: Выделить всё

      Map1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, element, Map1.ActiveView.Extent);