Подтвердить что ты не робот

Использование 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&region=GB - если это не удается, Google Карты не загружаются.

Можно ли использовать Google Maps V3 API в автономном режиме?

Могу ли я кэшировать-манифест http://maps.google.com/maps/api/js?sensor=false&region=GB, или это будет плохой ход?

(Извините за этот довольно новичок вопрос, дайте мне знать, если я могу лучше объяснить!)

4b9b3361

Ответ 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-карты. Он решил это для меня.