Can I run Google Maps API without internet access using OpenStreet Tiles? - google-maps

Is it permitted to use the Google Maps API (ver 2) in offline mode if I use OpenStreet tiles?
If so, how can I do this? I can store the Google JS file locally (main.js). What else do I need to do?

It is not permitted according to the Terms Of Service
http://code.google.com/apis/maps/terms.html
It is also unlikely to work, as the API Javascript is designed only to work online e.g. it must be able to talk to Googles servers.

Related

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 Maps iOS SDK - Search for places

I'm new to both iOS programming & the Google Maps iOS SDK, so apologies if this is a basic question.
I want to include a Google map, in an app and give users the ability to search for various places (restaurants, bars, gyms, etc) within a certain radius of a marker.
I know this is possible using the javascript api, but can it be done using the maps iOS SDK? I have read all of the information here and have searched Stack Overflow & Google but I can't really find anything that gives me any pointers.
Within the documentation, Google say that using a URL Scheme you can launch a native iOS app and pass in parameters for searches, directions etc. Is this what I need to be using, or is that more tailored to a webapp?
Any help, advice, or pointers to tutorials (other than the ones provided by Google) would be massively appreciated.
Cheers
The Google Maps URL Scheme can currently only be used to open the Google Maps app to search for a location or for directions. It can't search for places. Also, if your own app did this, then it would shut down your app and switch to the maps app, which may not be what you want. It will also only work if the user has installed the Google Maps app.
You would probably want to use the Google Places API to make http requests from your native app. You can request a response in either JSON or XML format. Then you'll need to parse the response, and use it to add markers to a GMSMapView using the Google Maps SDK for iOS.
This blog post describes this library which the blog post's author wrote to wrap the Google Places API. You wouldn't need most of this code, but it might give you an idea of where to start. This class is the main one which handles the requests to the places API.
Note that this library uses a third-party JSON parser - SBJsonParser. As of version 5.0 iOS includes a native JSON parser, NSJSONSerialization. So if your app's minimum supported iOS version is 5.0 or higher, you don't need to use a third-party library.

How can I build a Desktop client for Google Drive?

I want to build desktop application for Windows OS and use Google Drive to save some data in the cloud. After reading Google Drive SDK I found that only Web-applications, were installed from Chrome Web Store are allowed to use API and have access to data on Google Drive.
So my question: do I have any way to build native client (C++, Windows) for Google Drive? I know about hacks with using Google Docs API - but they can stop working any time, and I want something stable. Why Google team do not allow me create desktop application for their service? I have support of many other cloud storages and they do not have such restrictions.
Thanks.
For now you will have to use the (older) Google Document List API which provides full read-write and list access to Google Drive. (Google Drive and the former Google Docs use the same data)
So until we extend the capabilities of the current Drive API to cover the Google Document List use case you should use that instead.
EDIT: We just launched the v2 of the Google Drive SDK so you should now use that instead.
I have been working on a similar problem. I have realized that there is no straight forward way for doing this. Google Drive SDK is not easy to work with and how someone can simplify the process of connecting desktop application to Google drive shortly. I know this is not much help, but I am looking for a soltuion as well.
Here is some links that I have come across, haven't solved my problem either, but if you come to a solution please let us know PLEASE:
How to make GUI Client to upload file in java
Using Java APIs for downloading file from the Google Drive
http://www.coderanch.com/t/643120/Servlets/java/upload-file-drop-box-file

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.