Использование Google Maps V3 в автономном режиме, например. с манифестом кэша?
Я пишу мобильное приложение HTML5, которое использует Google Maps V3 с пользовательским слоем плит OpenStreetMap.
Плиты OSM (от tile.openstreetmap.org
) настроены на кеш всего за 24 часа, и я использую манифест для кэша для всех своих HTML/JS/CSS.
Таким образом, приложение может теоретически использоваться в автономном режиме, за исключением того, что интерфейс Google Maps недовольны офлайн.
Он всегда хочет позвонить на сервер Google Maps по адресу http://maps.google.com/maps/api/js?sensor=false®ion=GB
- если это не удается, Google Карты не загружаются.
Можно ли использовать Google Maps V3 API в автономном режиме?
Могу ли я кэшировать-манифест http://maps.google.com/maps/api/js?sensor=false®ion=GB
, или это будет плохой ход?
(Извините за этот довольно новичок вопрос, дайте мне знать, если я могу лучше объяснить!)
Ответы
Ответ 1
сами разработчики Google сами решали эту проблему, и, к сожалению, информация не получила широкого распространения. Но да, вы можете использовать кэш-манифест, чтобы сделать то, что вы описали.
Обязательные чтения
Техника
- Вы должны кэшировать каждый URL, используемый Картами Google.
- Используйте методы для борьбы с методами удержания Chrome и Firefox, удалив их из "автономных веб-сайтов".
- Все настройки должны быть на стороне клиента в javascript
Ваш файл кэша будет выглядеть (как в штате Миссури):
CACHE MANIFEST
/map/mobile/examples/template.aspx
/map/mobile/examples/template.css
/map/mobile/examples/template.js
NETWORK:
http://maps.gstatic.com/
http://maps.google.com/
http://maps.googleapis.com/
http://mt0.googleapis.com/
http://mt1.googleapis.com/
http://mt2.googleapis.com/
http://mt3.googleapis.com/
http://khm0.googleapis.com/
http://khm1.googleapis.com/
http://cbk0.googleapis.com/
http://cbk1.googleapis.com/
http://www.google-analytics.com/
http://gg.google.com/
Предостережения
Вам нужно быть полностью основанным на HTML5 и распознавать последствия, которые это будет иметь для ваших пользователей. Эта ситуация удобна, когда либо ваши пользователи обновлены по стандартам/устройствам браузера, либо у вас есть контроль над выборами пользователей.
Надеюсь, что это поможет.
Ответ 2
У меня http://maps.google.com/maps/api/js?sensor=false
в разделе CACHE
cache.manifest
вместе с моими файлами приложений и нет никаких проблем.
Хотя, я считаю, вам также нужно кэшировать другие файлы, которые запрашивает API Карт Google. Вы можете посмотреть файлы, загруженные вашим приложением, и включить их.
Ответ 3
Невозможно!
Карты Google Карты CDN имеют динамический характер,
Символьные символы в CACHE в файлах манифеста кэша HTML5 не разрешены
Мы не можем иметь что-то вроде
CACHE MANIFEST
/css/style.css
/js/libs/modernizr-2.0.6.min.js
/js/libs/jquery-2.1.4.js
http://mts0.googleapis.com/*
http://mts1.googleapis.com/*
http://fonts.googleapis.com/*
NETWORK:
*
Ответ 4
У меня был проект карты google, который мне нужен был в автономном режиме. Я обнаружил, что Bing Maps (https://www.bingmapsportal.com/ISDK/AjaxV7) намного лучше отключен и переключил мой проект на это, и я счастлив. Я запускал версию google и bing бок о бок в автономном режиме, а Bing был замечательный. Принимая во внимание, что google будет немедленно терпеть неудачу при загрузке плитки, карты Bing кэшируют больше фрагментов и, по-видимому, даже изменяют размеры увеличенных фрагментов, чтобы хотя бы дать вам что-то в автономном режиме.
Я знаю, что здесь речь идет о картах Google; но если вам неинтересно о bing vs. google и на самом деле просто нужна автономная поддержка, я настоятельно рекомендую попробовать Bing-карты. Он решил это для меня.