Offline Google Maps in an Android app - google-maps

Recently Google released a new version of their Google Maps which lets you save an offline version of a particular chunk of the map. At the same time I've been playing around with making an Android app which uses the Google Maps API, and I was just wondering... is it possible in some way to get that offline map and get my application to use it? So that my application doesn't need an internet connection either?
I'm aware that OpenStreetMap is an alternative but I don't think it'll work with the project I have in mind.
Cheers

that may be a violation of Google's Terms of Service.
Have a look at this: How to cache Google map tiles for offline usage?

Related

Geofencing and offline maps in Android

It's amazing how easy it is possible to use geofencing with Google Maps API. However for that you have to be "connected" and use online maps. However I can not find how to use geofencing functionality for offline maps and what, if any, offline map provider supports it on Android. Would be thankful for any help here.
Well, I ended up with some hybrid solution. I used MapBox and Open Street Maps for offline map functionality together with Google Play services that allowed me to add geofencing functionality. Somehow I was thinking that geofencing requires to use Google Maps and that was obviously not correct.

How to implement arcgis maps offline

How to implement arcgis maps offline. My client requirement is when there is no internet maps should be run offline. I have tried below example, but it's not working for me. Is there any other way to store tiles and then get these tiles in offline mode. https://developers.arcgis.com/javascript/jssamples/exp_webstorage.html
I have not tried it personally, but I know that Esri's JS offiline editor says that it supports taking tiles offline:
https://github.com/Esri/offline-editor-js

Does the google maps sdk for iOS allow caching for offline use?

Does the google maps sdk for iOS allow caching for offline use?
Just like the Google Maps app now allow offline interaction, I was thinking if it also aplied to apps created with the latest sdk.
Note: I've been around StackOverflow for sometime now that I know questions must be code related, but since the official page's discussion section forward me here with the tag [google-maps-sdk-ios], well.. here I am and I apologize if it shouldn't be this way.
Thank you.
No, as of SDK 1.8.1, there is no direct support for this for Google Maps.
It is however possible to use a custom tile overlay, which could load tiles from a downloaded cache. It's against the SDK T&C to download Google Map tiles, but you could provide your own tiles from another provider, e.g. OpenStreetMap.

Google map in web based application works even without internet connection?

is it possible to have an application (web-based) with google map api that works even without internet connection?
Say have to cache or store the map somewhere, so that when there is no internet connection the application still works.
I doubt it. Google Maps is a web service, which you can place into your application via an API key.
Therefore, you'll need to have an internet connection to actually make a call to the Google Maps web service to validate your API key and load it.
I'm assuming you mean a web application running internally within an intranet to access Google maps. This link might give you some clues evn though there seems to have an Android version of this feature. A google search on "offline google maps" returned quite a few Android links

Using Google Maps V3 offline, e.g. with cache-manifest?

I'm writing an HTML5 mobile application that uses Google Maps V3 with a custom layer of OpenStreetMap tiles.
The OSM tiles (from tile.openstreetmap.org) are set to cache for just over 24 hours, and I'm using a cache-manifest for all my HTML/JS/CSS.
So the application could in theory be used offline, except the Google Maps interface isn't happy when offline.
It always wants to call to the Google Maps server at http://maps.google.com/maps/api/js?sensor=false&region=GB - when this fails, Google Maps fails to load.
Is there any way to use Google Maps V3 API offline?
Could I cache-manifest http://maps.google.com/maps/api/js?sensor=false&region=GB, or would that be a bad move?
(Sorry for this rather beginner question, let me know if I can explain better!)
Google coders themselves have tackled this problem and unfortunately the information isn't well disseminated. But yes you can use cache-manifest to do exactly what you've described.
Required Readings
First take a look at the Google Code blogpost here: http://googlecode.blogspot.com/2010/04/google-apis-html5-new-era-of-mobile.html
Then have a read at Missouri State's own post: http://blogs.missouristate.edu/web/2010/05/12/google-maps-api-v3-developing-for-mobile-devices/
The Technique
You must cache every URL used by Google Maps
Employ methods to battle Chrome's and Firefox's stubborn caching methods by removing it from "offline websites"
All customizations must be client-side in javascript
Your cache file will look like (as per Missouri State):
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/
Caveats
You will need to be entirely HTML5-based and recognize the impacts this will have on your users. This situation is handy where either your users are up-to-date on browser standards/devices or you have control over user choices.
Hope this helps.
I have http://maps.google.com/maps/api/js?sensor=false in the CACHE section of cache.manifest, together with my application files and there isn't any problem.
Although, I believe you also have to cache other files that the Google Maps API requests. You can take a look at the files downloaded by your app and include them.
Not possible!
Google map CDN URLs have dynamic nature,
https://mts0.googleapis.com/vt?pb=!1m4!1m3!1i8!2i234!3i15...
https://mts1.googleapis.com/vt?pb=!1m4!1m3!1i8!2i233!3i155!!...
No wildcard characters are allowed in CACHE section of the HTML5 cache manifest files
We can not have some thing like,
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:
*
I had a google map project that I needed offline. I found Bing Maps (https://www.bingmapsportal.com/ISDK/AjaxV7) is much better offline and switched my project over to that and I'm happy. I ran the google and bing version side-by-side in offline mode and Bing was great. Whereas google would immediatey fail on tile loads, Bing maps cached more tiles and appeared to even resize zoomed tiles to at least give you something in offline mode.
I know the question here is about Google maps; but if you don't care about bing vs. google and really just need offline support, I'd highly recommend trying Bing maps. It solved it for me.