Pull to refresh

Comments 12

Отличное решение.
В прошлом году ездил в турпоездку с семьей и телефон никак не хотел работать как модем для ноута. А карты онлайн только был — не перестраховался. С такой проблемой бы теперь не столкнулся.

Пара вопросов:
— Как долго хранится локальный кэш?
— Очищается ли он одновременно с общим кэшем? К сожалению, не знаю. Если да, то как сделать его исключением?
— Можно ли добавить оповещение, что действие совершенно? (добавлено в сторейдж, удалено)
1. Я в статье писал, что кэшем в моем случае является либо локальная папочка со спрайтами (для локального и/или phonegap приложения) — в этом случае они обновятся только когда заменишь сами спрайты в папке, либо хранение в localstorage, indexedDB и им подобные — в этом случае они обновляются руками и хранятся пока руками не удалишь.

2. Не совсем понятно какой именно кэш упоминается (браузера, application cache или собственно хранение в localstorage). Но все же кэш, о котором я говорил, сам по себе не сбросится, если конечно не сделать это программно либо не очищать данные в браузере принудительно («Стереть недавнюю историю» в FF или «Clear browsing data» в хроме).

3. Оповещение сделать можно. Это чуточку сложнее в моей реализации, тк данные в localstorage добавляются асинхронно по событию onload для image элемента.
Кстати есть видимо попроще, но мультиплатфарменная тулза GMapCatcher.
С технической точки зрения решение интересное.
Но вы нарушили условия лицензии Google Maps API (https://developers.google.com/maps/terms). Как минимум нарушен пункт 10.1.1.а: «you must not access map tiles or imagery through interfaces or channels (including undocumented Google interfaces) other than the Maps API(s)».
Поэтому никуда в серьезное плавание ваше решение попасть не может.

А можно просто воспользоваться OpenStreetMap.
Спасибо за комментарий!

К сожалению я пока не работал с другими api для карт и воспользовался google maps api. Данная статья является лишь примером решения возникшей задачи.

Наверное, в моем случае на самом деле стоит пробовать OSM.
Если у вас на телефоне андроид — поставьте OsmAnd: он умеет работать в офлайне.
Суть в том что мне не просто нужна карта офлайн, а в том что мое собственное приложение должно работать с картой и без самой карты работа с ним невозможна.
Тогда используйте OSM, как советовали выше. Я сам с ним не работал, но судя по отзывам, АПИ там вполне нормальное.
>> Конечно, без подключения к сети в наше время лучше из дома не выходить, но все же интернет на любимом мобильном устройстве может отсутствовать в самое не подходящее время.

Решение зачетное, но на всякий случай:
1. Есть приложение OsmAnd, умещее работать с офлайн картами.
2. В Гуглокартах можно выделить кусок карты и закешировать.
Да, совсем забыл, это были советы для Андройда.
Если нужна только карта (а не API), то бесплатное приложение MapsWithMe для iOS и Android позволяет скачать целиком карту любой страны и потом пользоваться ею оффлайн.
Sign up to leave a comment.

Articles