RUS  ENG 

Перерисовка карты

Страницы: 1
RSS
Перерисовка карты
 
Здравствуйте.

Я хотела бы посоветоваться как лучше сделать.

При масштабировании карты, которое управляется колесом мышки, перерисовка идет слишком часто, а поскольку карта у нас
лежит на сервере, то весь процесс занимает очень длительное время.

Можно ли сделать так, чтобы перерисовка карты выполнялась лишь после того, как колесо перестали вращать, а масштаб изменился
в зависимости от того на сколько колесо было повернуто.

Как то бы отловить начало поворота колеса, его конец и на этот промежуток времени принудительно отменить перерисовку карты,
затем изменить масштаб и востановить перерисовку.

Проблема в том что не знаю какими средствами для этого воспользоваться.
 
События окончания вращения колесика мыши нет. При вращении колесика есть только череда событий о том, что его покрутили туда или обратно. Но Вы можете сделать следующее:
Отключить реакцию карты MapCtrl1.Map.EventEnable( eEventEnableMouseWheel, False),
далее на событие от MapCtrl OnMouseWheel установить таймер и если по прошествии указанного малого таймаута не пришло очередного события OnMouseWheel, то вручную установить в карте нужный масштаб.
 
Спасибо за ответ.
 
Скажите, а есть ли возможность программным путем добиться такого же плавного масштабирования и перемещения карты, как в режиме eModeZoom при перемещении мыши с нажатой левой кнопкой и клавишей Ctrl?
Функции SetMapX и SetMapY позволяют организовать перемещение карты без полной перерисовки видимой области, а вот функция масштабирования работает с полной перерисовкой, что вызывает мерцание при циклическом именении масштаба.
 
В ближайшем обновлении будет: Mapctrl1.Map.MapView.Active.RedrawMode 1 или 0 1- без перерисовки
Страницы: 1