ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
-
novice
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Сообщение
novice » 28 мар 2013, 14:16
Сейчас карта обновляется следующим образом:
Код: Выделить всё
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
Сообщение
lam » 28 мар 2013, 14:29
Какое общее количество узлов для 200 объектов и физический размер этого слоя.
-
novice
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Сообщение
novice » 28 мар 2013, 16:37
Я не могу ответить на этот вопрос, так как поведение кода непредсказуемо. Сам проект написан отвратительно: копипаста, куча неиспользуемых функций, отсутствие комментариев, дикие названия переменных.
В общем, я сделал, что 10 объектов(т.е. на самом деле это 40 объектов с кучей узлов) отображаются быстро(до этого даже 5 тормозило + постоянно перерисовывало, а объектов 20 отрисовывало минуту). Думаю этого будет достаточно.
-
novice
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Сообщение
novice » 28 мар 2013, 20:03
Мне подсказали отличный способ борьбы с внешним проявлением тормозов.
При перемещении по карте у меня часть видимых на предыдущем экстенте карты тайлов не перерисовывается. Можно ли в принципе сделать так, чтобы и часть видимой векторной графики с предыдущего шага не перерисовывалась?
-
novice
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Сообщение
novice » 28 мар 2013, 22:44
Решение: убрать обновление графики по следующим событиям: изменение экстента; по всем событиям, связанными с мышкой. Т.е. оставить обновление только: при выделении/снятии выделения с объекта на карте(в этом случае обновлять только выделенную векторную графику) и при добавлении/удалении объектов на карту.
-
novice
- Гуру
- Сообщения: 527
- Зарегистрирован: 21 окт 2012, 00:17
- Репутация: 15
- Ваше звание: developer
Сообщение
novice » 28 мар 2013, 22:46
при среднем объеме данных на карте скорость отображения выросла раз в 30, при выделении/снятии выделения с объектов тормозов нет совсем; при перемещении карты по территории, где нет векторной графики тормозов нет совсем
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя