2015-04-20 2 views
1

В настоящее время я делаю анимацию (smooth zooming & panning) в OpenLayers с использованием ol.animation, но иногда эти анимации слишком быстры, чтобы показать плавное масштабирование (плитки не загружаются достаточно быстро) - это ожидаемое поведение. Но анимация на моей странице начинается только после того, как зритель читает целую запись (~ 1 мин), поэтому я подумал, что могу предварительно загружать плитки, необходимые для анимации в это время бездействия.Предварительная загрузка плитки перед анимацией

Есть ли возможность предустановить плитки слоев/карты? Я думал, некоторые решения:

  • Создайте другой вид и имитировать анимацию позади первого слоя
  • Создать слой/карту клон за видимой, и создать анимацию за тем, что дополнительное время. И когда анимация закончена, просто показать карту предварительной нагрузки
  • вызова некоторых loadTiles функции в зависимости от плитки, я хочу, чтобы загрузить, , но я не знаю, что функция существует
+0

См. [«Если вопросы включают« теги »в их названиях?»] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –

ответ

0

Это гораздо проще, чем вы думаете, что у плиточных слоев есть опция preload. Поэтому, если вы хотите предварительно загружать, например, до уровня масштабирования 3, можно построить свой слой с

new ol.layer.Tile({ 
    ... 
    preload: 3 
}); 

Также см http://openlayers.org/en/v3.4.0/apidoc/ol.layer.Tile.html.

+0

Спасибо за разъяснение параметра предварительной нагрузки (я думал, что он предварительно загружает только некачественные плитки). Проблема заключается в том, что я реализовал плавное масштабирование и панорамирование из [link] (https://www.cs.ubc.ca/~tmm/courses/cpsc533c-04-spr/readings/zoompan.pdf), а места могут быть всего в 1000 километрах, и эти анимации я хочу предварительно загрузить. К сожалению, в этом случае свойство предварительной загрузки не работает :( – logocar3

+0

Вы правы - preload загрузит плитки нижнего разрешения с уровня масштабирования 0 до уровня масштабирования, который вы указываете для предварительной загрузки, но только для видимой степени. Это не поможет для панорамирования , только для масштабирования. – ahocevar

Смежные вопросы