ViewModel.setLookAtData () не анимируется, если используются только границы - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь приблизиться к выбранной фигуре или группе фигур. Фактический ход работает, но свойство сообщить его анимации - нет.

map.getViewModel().setLookAtData({
   bounds: boundingBox
}, true);

Это правильно перемещает и масштабирует, но без анимации. Если я добавляю определенный c уровень масштабирования, он анимируется, как и ожидалось, но часть того, что мне нужно, чтобы выяснить это уровень масштабирования для меня.

Я, вероятно, смогу подделать его, если смогу найти какой-либо надежный способ вычислить, какой уровень масштабирования должен быть вручную, но это далеко не идеально. По какой-либо причине использование только границ нарушает функцию, которая позволяет анимацию. Любой способ обойти это?

1 Ответ

0 голосов
/ 20 марта 2020

Методы экземпляра карты, такие как setZoom (), setCenter () и setViewBounds () принимают второй аргумент, указывающий, следует ли применять анимированный переход.

Мы не рекомендуем создавать собственные анимации масштабирования, как показано на фрагмент ниже:

// Assumption: 'map' is initialized and available.
var currentZoom = map.getZoom();
var endZoom = currentZoom + 3;

// Update zoom level on each animation frame,
// till we reach endZoom:
function step() {
    currentZoom += 0.05;
    map.setZoom(currentZoom);

    (currentZoom < endZoom) && requestAnimationFrame(step);
}

// Start zoom animation
step();

Вместо этого вызовите метод setZoom () с необязательным вторым параметром для выполнения анимации:

/ ** * Предположение: 'map' is инициализированы и доступны * / // Вызовите getZoom () с необязательным вторым параметром, // указывающим, что анимация должна быть выполнена: map.setZoom (map.getZoom () + 3, true);

...