У меня проблемы с корректным поведением карты при вызове ZoomToResolution
и PanTo
. Мне нужно иметь возможность масштабировать карту с определенными координатами и центром.
Единственный способ, которым я заработал, - это удалить анимацию:
this.MapControl.ZoomDuration = new TimeSpan(0);
this.MapControl.PanDuration = new TimeSpan(0);
В противном случае, если я сделаю вызов следующим образом:
control.MapControl.ZoomToResolution(ZoomLevel);
control.MapControl.PanTo(MapPoint());
Он делает одно или другое (например, панорамирование или масштабирование, но не то и другое). Если (после анимации) я вызываю этот код второй раз (карта уже увеличена или панорамирована до нужного положения/уровня) - он выполняет вторую часть.
Пробовал это:
control.MapControl.ZoomToResolution(ZoomLevel, MapPoint());
Та же проблема, внутри он вызывает вышеуказанные команды
Итак, мой единственный обходной путь прямо сейчас — установить продолжительность масштабирования/панорамирования на 0. И это ухудшает UX при использовании мыши.
Я также пробовал что-то вроде этого:
this.MapControl.ZoomDuration = new TimeSpan(0);
this.MapControl.PanDuration = new TimeSpan(0);
control.MapControl.ZoomToResolution(ZoomLevel);
control.MapControl.PanTo(MapPoint());
this.MapControl.ZoomDuration = new TimeSpan(750);
this.MapControl.PanDuration = new TimeSpan(750);
Кажется, что это работает, но тогда взаимодействие с мышью становится «сумасшедшим». Прокрутка мыши заставит карту прыгать и приближаться к случайным местам.
Есть ли известное решение?