6

Есть ли хорошее руководство по тому, как предварительно кэшировать известную часть карты с помощью TileCache, хранить их в базе данных мобильных приложений PhoneGap и загружать их с помощью OpenLayers?Offline maps on PhoneGap с использованием OpenLayers и TileCache

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

ответ

1

Если у вас есть собственные плитки и встроены в ваш архив приложений, вы можете использовать Листовку для визуализации локальных фрагментов. http://leafletjs.com/
Если ваши пользовательские плитки удалены (размещены на сервере), вы все равно не сможете их использовать в автономном режиме.
Пожалуйста, просмотрите блог this.

Да, полностью возможно использовать листовые плитки в автономном режиме, просто измените путь, используемый для плиток, на локальный путь.

Ex:.
По умолчанию:

// add a CloudMade tile layer with style #997 
L.tileLayer('http://{s}.tile.cloudmade.com/[API-key]/997/256/{z}/{x}/{y}.png', { 
    attribution: 'Map data' 
}).addTo(map);

Offline:


L.tileLayer('file://path_to_your_tiles/{z}{x}{y}.png', { 
    attribution: 'Map data' 
}).addTo(map);

Просто убедитесь, что ваши плитки названы по той же схеме (напр .: 6_17_15.png). Вы можете изменить шаблон.

Вы можете хранить фрагменты карты локально, используя структуру каталогов, чтобы соответствовать серверной, и указывать ваш tileLayer в локальном месте плиток. Одно дело иметь в виду, однако, некоторые поставщики картографической плитки будут расстроены, если вы очистите свои плитки en-masse, а затем сохраните их локально. Они будут особенно расстроены, если вы напишете приложение, которое поощряет множество людей, которые используют приложение, чтобы это сделать. Такое приложение, скорее всего, быстро заблокируется. См. Например, http://wiki.openstreetmap.org/wiki/Tile_usage_policy. Вы всегда можете отображать собственные плитки для локального хранения.

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