Моментально обновить на карте 200 объектов

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Моментально обновить на карте 200 объектов

Сообщение novice »

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

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

Map1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
Пытался так же

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

Map1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null, Map1.ActiveView.Extent);
Скорость обновления в обоих случаях одинаковая.

Собственно вопрос: можно ли отобразить все объекты сразу и как можно быстрее?
Последний раз редактировалось novice 28 мар 2013, 22:38, всего редактировалось 2 раза.
lam
Гуру
Сообщения: 1018
Зарегистрирован: 01 авг 2012, 13:55
Репутация: 241

Re: Моментально обновить на карте 200 объектов

Сообщение lam »

Какое общее количество узлов для 200 объектов и физический размер этого слоя.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Моментально обновить на карте 200 объектов

Сообщение novice »

Я не могу ответить на этот вопрос, так как поведение кода непредсказуемо. Сам проект написан отвратительно: копипаста, куча неиспользуемых функций, отсутствие комментариев, дикие названия переменных.

В общем, я сделал, что 10 объектов(т.е. на самом деле это 40 объектов с кучей узлов) отображаются быстро(до этого даже 5 тормозило + постоянно перерисовывало, а объектов 20 отрисовывало минуту). Думаю этого будет достаточно.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Моментально обновить на карте 200 объектов

Сообщение novice »

Мне подсказали отличный способ борьбы с внешним проявлением тормозов.
При перемещении по карте у меня часть видимых на предыдущем экстенте карты тайлов не перерисовывается. Можно ли в принципе сделать так, чтобы и часть видимой векторной графики с предыдущего шага не перерисовывалась?
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Моментально обновить на карте 200 объектов

Сообщение novice »

Решение: убрать обновление графики по следующим событиям: изменение экстента; по всем событиям, связанными с мышкой. Т.е. оставить обновление только: при выделении/снятии выделения с объекта на карте(в этом случае обновлять только выделенную векторную графику) и при добавлении/удалении объектов на карту.
novice
Гуру
Сообщения: 527
Зарегистрирован: 21 окт 2012, 00:17
Репутация: 15
Ваше звание: developer

Re: Моментально обновить на карте 200 объектов

Сообщение novice »

при среднем объеме данных на карте скорость отображения выросла раз в 30, при выделении/снятии выделения с объектов тормозов нет совсем; при перемещении карты по территории, где нет векторной графики тормозов нет совсем
Ответить

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость