Мобильное веб-приложение карты: загружайте изображения фрагментов с сервера, сохраняйте их на стороне клиента, а затем отображайте в автономном режиме.

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

Я кое-что исследовал, используя CacheManifest и LocalStorage в HTML5, но кажется, что они могут обрабатывать только небольшой объем данных. Кроме того, WebSql кажется потенциальным решением, но я не могу понять, как его достичь.

По сути, я хочу иметь следующие функции: загружать с удаленного сервера в онлайн-режиме -> хранить их в локальной памяти -> показывать их в автономном режиме.

спасибо за любые подсказки!


person Simon    schedule 01.06.2011    source источник


Ответы (2)


Наш проект с открытым исходным кодом на недавнем iOS DevCamp (июль) был посвящен именно этой проблеме. Мы подошли довольно близко к рабочему решению:

https://github.com/pdxgene/iDCMapsLite

Основные моменты: - вкладка «онлайн» просматривает карты (в настоящее время настроена на получение фрагментов из OpenStreetMaps, IIRC) - «сохранить» сохраняет фрагменты карты в хранилище основных данных и добавляет «автономную карту» в список на второй вкладке; - вкладка "сохраненные карты" содержит список сохраненных карт. Выбор одного из них берет его плитки из хранилища Core Data и отображает их.

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

Надеюсь, это поможет. Не стесняйтесь попробовать заставить его работать на вас :-)

person PDXGene    schedule 11.08.2011

У меня были аналогичные требования на http://bluedot.mobi/td. Если на время оставить в стороне проблему кэширования, то иметь структуру сопоставления, которую можно использовать в автономном режиме, сложно — лучшее, что я знаю, — это API с открытым исходным кодом OpenLayers.org. Недавно они проделали значительную работу по включению поддержки мобильных устройств. Большие картографические API, такие как Google javascript API, ограничивают автономное использование и кэширование.

В настоящее время ведется некоторая работа с OpenLayers для использования localStorage и/или websql. Рабочий пример находится здесь. Вы можете перейти к источнику оттуда, чтобы увидеть различные методы реализации.

Обратите внимание, что с OpenLayers вы, вероятно, захотите подключиться к магистрали svn, чтобы получить последние разработки. Это быстро развивающийся проект.

person DaveH    schedule 22.06.2011