В блоге:

2010-02-18

Тайлы карт и снимков

В кэше SAS.Планета каждый тайл (кусочки карты или снимка, обычно размера 256x256) располагается в отдельном файле, которые разбросаны по каталогам. Способ простой, но ведет к заметной потере места из-за размера кластера.

Первым делом, я начал обкатывать прямой вариант использования этого кэша в своей програмульке для Android. В результате, когда скопировал свой кэш одних только спутниковых снимков Google (занимающих в чистом виде 2.5ГБ), то этот кэш сожрал 8ГБ карточку памяти. Но скорость доступа вполне приличная.

Вторым шагом решил все файлы запаковать в один zip-архив. Но Android такой файл переварить не смогл, не хватало памяти для одного приложения.

Покрутив разные варианты, держа в уме, что интересует только пассивное использование кэша (без изменения), пришел пока к варианту хранения блоков 100x100 тайлов в отдельных zip-архивах. В принципе, получается не сильно много zip-архивов и максимально 10 тысяч файлов в каждом. Получилось нормально. 10 тысяч файлов вроде бы перевариваются, но в крайнем случае можно сократить количество тайлов в одном архиве.

Так что развитие продолжается.

Кстати, кому интересна самостоятельная разработка подобных программ, то есть неплохой пример: osmdroid - OpenStreetMap-Tools for Android Для меня эта штука была интересна использованием класса Scroller для скроллинга "пинком" (обычный скроллинг перетаскиванием делается элементарно).


Еще по этой теме:

0 comments:

Post a Comment

Blog Archive