2013-07-27 1 views
1

У меня возникла проблема с кешем плиток в листовке. Если я начну с пункт A, панорамировать до пункта B, а затем посмотреть на плитки между ними; они кэшируются и такие. Нет проблем.Листовка очищает кеш плитки при масштабировании

Но если я кастрюли от А до Б, наезда, и уменьшить масштаб и кастрюли обратно в, плитки очищаются! Другими словами, кэшированные плитки, кажется, очищаются при изменении уровней масштабирования.

Это обычное поведение, и его можно предотвратить? то есть я могу заставить листовки хранить ВСЕ загруженные плитки в памяти? Я пробовал играть с различными вариантами карты и слоев без успеха. Опция unloadInvisibleTiles по умолчанию равна false, что говорит о том, что плитки хранятся в памяти.

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

Заранее спасибо.

ответ

1

Я нашел решение этой «проблемы» на самом деле.

Я закончил тем, что модифицировал исходный код в Листовке (спасибо за Open Source), таким образом, что для каждого слоя создается контейнер листового слоя. Вместо очистки bgBuffer и переднего плана все время.

А затем, когда он масштабируется, он позиционирует целевой слой позади текущий активный. Что это делает, так это то, что он охватывает всю серое пространство вокруг текущего. И, таким образом, создается иллюзия, что плитки «снаружи» видового экрана загружаются.

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