Denver писал(а):Papazol писал(а):А зачем вам это?
Для удобства работы с программой. Часто приходиться искать нужные места на карте и хотелось чтоб прогружался не только текущий слой но и следующие - для более быстрого пользования картами.
Sasplanet часто использую как ресурс поиска обьектов. Приходиться ждать прогрузки каждого "зума" - хотел чтоб это чуток "наперед" делалось.
Т.е. смотрим 13й зум - в кеш уже грузиться 14й и его можно быстро глянуть не дожидаясь что мы на него переключимся и он начнет грузиться.
Лучше б даже прогружались 2-3 зума "увеличеных" от просматриваемого - когда интернет хороший. Если не нужно или интернет по трафику то не прогружались доп зумы - можно в настройки вывести количество слоев загрузки.
Давайте посмотрим на просмотр карты из кэша. Даже с диска кэш не грузится заранее. При изменении масштаба сначала быстро масштабируются уже открытые тайлы, а затем подгружаются с диска новые. Предзагрузка в фоне одного масштаба до его просмотра теоретически возмозжна, и даже чуть-чуть ускорит процесс просмотра. Но, подчеркну, загрузка только одного масштаба. На два-три вперед (да еще и назад !) грузить затратно и часто необосновано. Каждый тайл на следующем мастабе (z+1) превращается в 4, а далее аж в 16 (z+2), 64 (z+3) итд... А если дожаться момента, когда будет открыт уже следующий масштаб z+1, то он займет на экране в 4 раза больше пикселей, чем заняла бы его предзагрузка. То есть мы увидим меньший по площади фрагмент. Аналогично и область предпросмотра следующего масштаба (z+2) уменьшится в 4 раза, значит теперь предзагрузка z+2 потребует загрузки в 4 раза меньшего числа тайлов (по 4 на каждый тайл z+1), а не по 16 на каждый тайл z.
Описанный вариант- единственный возможный. Предзагрузка двух и более масштабов бессмыслена. Более того - неизвестно заранее, на каком масштабе пользователь остановится и начнет уменьшать зум обратно. Так зачем выполнять лишнюю работу загрузки. Закешировали на 1 масштаб больше и ждем действий пользователя. При этом код все равно сильно усложняется, а выигрыш ну совсем маленький, доли секунды. Вот и не делают, как правило, предпросмотр.
Все это работает хорошо при работе с диском. Интернет - штука более тонкая. Прочитайте внимательно сообщение выше про медлительность интернета, и поймите, что грузить тайлы, которые может и не нужны вовсе, было бы архинеправильно.
Так что прогружайте стандартным методом скачки только места для просмотра, а затем включайте скачку на весь регион и пока грузится смотрите уже скачанные места интереса.