Предварительная загрузка плиток перед анимацией
В настоящее время я делаю некоторую анимацию (плавное масштабирование и панорамирование) в OpenLayers с использованием ol.animation, но иногда эти анимации слишком быстрые, чтобы показывать плавное масштабирование (плитки загружаются недостаточно быстро), что является ожидаемым поведением. Но анимация на моей странице запускается только после того, как зритель прочитает весь пост (~1 мин), поэтому я подумал, что смогу предварительно загрузить плитки, необходимые для анимации, в это время бездействия.
Есть ли возможность предварительно загрузить плитки слоев / карты? Я думал о некоторых решениях:
- Создайте другой вид и смоделируйте анимацию за первым слоем
- Создайте слой / клон карты позади видимого, и создайте анимацию позади в это дополнительное время. А когда анимация закончится, просто покажите карту предварительной загрузки
- Вызвать некоторую функцию loadTiles в зависимости от плиток, которые я хочу загрузить, но я не знаю, существует ли эта функция
1 ответ
Это гораздо проще, чем вы думаете - у плиточных слоев есть preload
вариант. Поэтому, если вы хотите предварительно загрузить, например, до уровня 3, вы можете создать свой слой с
new ol.layer.Tile({
...
preload: 3
});
Также см. http://openlayers.org/en/v3.4.0/apidoc/ol.layer.Tile.html.