Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I'd like to be able to implement this in an Android app, and I thought it was possible with the newest Google Maps API release, but I haven't seen much discussion on the topic. Ideally, you'd be able to download/cache maps for a certain region for later offline use. Is it only possible to do this via the Google Maps 5 application and not the API without violating the ToS? I know OpenStreetMap and others allow this, but I believe Google Maps still offers superior mapping and the most widespread usage.
Thanks in advance.
Downloading and caching the Google Maps assets is against the Google Maps API TOS.
Check the TOS section 8:
License Restrictions. Except as expressly permitted under the Terms, or unless you have received prior written authorization from Google (or, as applicable, from the provider of particular Content), the license granted to you in Section 7 is conditioned on your adherence to all of the restrictions in this Section 8. Under this Section 8, you must not (nor may you permit anyone else to):
8.2. copy, translate, modify, create a derivative work of, pre-fetch, cache, or publicly display any Content or any part thereof.
Is it only possible to do this via the Google Maps 5 application and not the API without violating the ToS?
Correct, though AFAIK it's not even physically possible with the API.
There are 3rd party Maps API-s which enable to do this, like Nutiteq maps SDK. Not with Google maps, as it is really against their ToS, but with Bing (with Enterprise license), OpenStreetMap (free) or other map sources.
Disclaimer: I'm developer of it.
You can try to use GoogleMapsRipper 2.0.4 from http://www.blueblackworks.com
GoogleMapsRipper is mapping software that allows you to download both satellite imagery, topographic and road maps from Google Maps, Bing Maps and OpenStreet Maps.
According this 10.1.3(b) you can do it temporally on mobile device.
This project implement it, I can't provide particular example but you can dig in into it coz it open-source.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Hello I have the default android " Dummy Content " native app build in my android phone.. now I need to use the open street map applicaiton and intergrate it into this build with a GPS location ..
I could not find any infos in google search.. can any one help me with the links or suggestions?
Also which is better and ease of doing? Google maps or open streep maps in Android Devices...
please let me know.
If you want to show map content you can do it with Google Maps (already in Android libraries), or you can use different map data (e.g. OpenStreetMap).
There are two known communities amongst others, who developed a Android Library for OpenStreetMap data maps:
http://code.google.com/p/osmdroid/
https://code.google.com/p/mapsforge/
At today, the Google's Google Map View is the most easy to use API. Unfortunetly it's commercial in some points. For example, you are not allowed to develop an application showing google map content in combination with turn-by-turn guidance (cf. Google Maps Terms of Service: https://developers.google.com/maps/terms?hl=en ). In opposite, OSMDroid is free to use for everything.
There are many tutorials in the web, which teach step by step how to show the GPS location of the device on a maps content in your application. Some of them are:
Google Maps: http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/
OSMDroid: http://android-er.blogspot.de/2012/05/display-current-location-marker-on.html
EDIT:
I received some question about if a turn-by-turn guidance navigation app is possible to implement (and publish). The answer is yes.
On a license view, you must not use googlemaps, but e.g. OSMDroid is fine here.
I have done this myself once using OSMDroid as a mapview library and OSMDroidBonusPack as Routing, Geocoding and reverseGeocoding library (the bonuspack has several more features, see all at the git repository
I wanted to provide another link to existing navigation apps implemented by using OSMDroid, but it seems they are no longer maintained for updates.
Take a look at AnyMaps, it allows you to use OpenStreetMap as one of the options while having API which is close to Google Maps:
https://github.com/car2go/AnyMaps
Check out https://github.com/zsoltk/overpasser. It's a Java library to ease working with the Overpass API.
It generates the Overpass query string for you
It comes with a Retrofit adapter
It has an Android sample showing how to put them all together and show your OpenStreetMap data on Google Maps
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I'm developing an app which used google map API. Some feature of app are In-app purchases.
I've read ToS, in 9.1.2
9.1.2 Exceptions.
(a) Enterprise Agreement with Google. The rules in Section 9.1.1 (Free
Access, Public Access) do not apply if you have entered into a
separate written agreement with Google (such as a Google Enterprise
agreement) or obtained Google's written permission.
(b) Mobile Applications. (i) The rule in Section 9.1.1(a) (Free
Access) does not apply if your Maps API Implementation is used in a
mobile application that is sold for a fee through an online store and
is downloadable to a mobile device that can access the online store.
(ii) The rule in Section 9.1.1(b) (Public Access) does not apply if
your Maps API Implementation is an Android application that uses the
Google Maps Android API. (However, the rule in Section 9.1.1(b)
(Public Access) will continue to apply if your Maps API Implementation
is an Android application that uses any other Maps APIs, unless the
Maps API Implementation qualifies for the exception in Section
9.1.2(a) (Enterprise Agreement with Google).)
it means my app must be 100% free??.
I have 2 question now:
My app provide map view are free and some of other feature have fee, is this possible?
I'll use google map API but Geocoding from another provider. Is that ok?
From the FAQ:
Can I use the Google Maps API on a commercial website? As long as your
site is generally accessible to consumers without charge, you may use
the Google Maps API. For example, if your website is supported by
advertising, it likely falls within the Google Maps API Terms of
Service. If you charge people to place information on your map (e.g.
to list their homes for sale), but you display this information using
the Google Maps API on a free part of your site, you'll also meet the
Google Maps API Terms of Service.
However, not all commercial uses are allowed. For example, if your
site meets any of the following criteria you must purchase the
appropriate Google Maps API for Business license:
Your site is only available to paying customers. Your site is only
accessible within your company or on your intranet. Your application
relates to enterprise dispatch, fleet management, business asset
tracking, or similar applications. Remember, Google reserves the right
to suspend or terminate your use of the Google Maps API at any time,
so please ensure that you read the Terms of Service carefully.
And from exceptions:
(b) Mobile Applications. (i) The rule in Section 9.1.1(a) (Free
Access) does not apply if your Maps API Implementation is used in a
mobile application that is sold for a fee through an online store and
is downloadable to a mobile device that can access the online store.
The way I read this is that you may use the API for commercial purposes if you develop for an app sold for a fee. I highly doubt that any of this applies to in-app purchases, which Google does not explicitly reference.
PLEASE NOTE however that NONE of us will be able to give you legal advice. The Google team will not give you any legal advice either. You NEED to consult with a lawyer for full legal advice.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
In my company we have developed an android application that uses Google Maps. specifically we use
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
On very short notice this application will be demoed in China to a Chinese company, and I need to know if we need to replace the map API or not.
I have searched the Internet in home of finding a simple Yes or No answer if maps work or not but it's not clear to me.
I went to china and used maps in the summer och 2011, but shortly after it seams that maps was blocked. Then I read news that Google applied for a licence to provide map services in China bot no word if they got them or not.
If i narrow the search down to results from this year some people claim that it works other that it does not.
So are there any stack overflowers out there in China that can give me a conclusive answer?
I really don't have the time to replace the map API if do not have to
I live in Beijing, and I can assure you that Google Maps (and all its other services are available).
But what you need to take into consideration, is that traffic from inside China to the outside is far from stable : last week for example, gmail was very unstable, but it all went back to normal after a few days.
Look at China as a giant Enterprise network : sometimes DNS servers go down or the Great mighty firewall goes wrong ...
Also there are periods when the network is more bound to mess up : National holiday (October), Chinese New Year (around February) and last but not least : Communist party elections (in November this year). During these periods, they might decide to temporarily block some websites.
Also, different cities might have different firewall rules : what might work in Beijing, might not work in Shanghai (but this is very rare).
Google still has no map publishing license in China (at least as my latest info goes) It may well be that in the near future Google's Map services will be blocked.
A lot of Chinese websites, including ours, use Google's JS as well as their Service API's, Among them is Google's geocoding api.
in china, baidu (NASDAQ:BIDU) and sogou [the minor search engine, part of sohu (NASDAQ:SOHU)] both provided online maps and also APIs,
baidu’s map api home is http://dev.baidu.com/wiki/map/in...
sogou’s map api home is http://map.sogou.com/api/
actually, in china, as of now, the google maps api are still available now.
as from recent chinatech.us news,
Google China passed the annual inspection and got more opportunity to get online map business license
so, the 3 API are are and available.
I hope this is not a naive question but is there any way to make an android application that uses a map without the use of google or the internet in general(as in not a google api)?Can a map be download from somewhere and merged offline in the code?I'm thinking in terms like having a street map,but not in your hand in this case.Thank you
Using google maps:
The google map application supports pre-caching, which does exactly what you want.
Now the bad news: it's not only impossible to do through the API (yet), it would also break the terms of service.
More details here:
Downloading/Caching Google Maps for Offline Use
TOS section 8:
License Restrictions. Except as expressly permitted under the Terms, or unless you have received prior written authorization from Google (or, as applicable, from the provider of particular Content), the license granted to you in Section 7 is conditioned on your adherence to all of the restrictions in this Section 8. Under this Section 8, you must not (nor may you permit anyone else to):
...
8.2. copy, translate, modify, create a derivative work of, pre-fetch, cache, or publicly display any Content or any part thereof.
...
(Emphasis added by me)
Using other map services:
No idea...
Have a look at http://code.google.com/p/mapsforge/
It uses openstreetmap instead of googlemaps and allows for offline maps. The API is almost identical to the googlemaps api. If you're familiar with googlemaps api it should be very easy to switch..
You might want to try OpenStreetMap instead of GoogleMaps. While you're not going to have as rich of a dataset, it's FOSS you can still do a whole lot with it.
The OSM Android page is here.
I haven't dug too much into offline cacheing for it, but as you can see, a lot of apps have already been built using their kit.
You may have a look into OpenStreetMap and generate your own tiles using Mapnik.
For mobile use I will suggest look into osmosis - crop different sections (bounding boxes) - to make smaller size packages. Here it's explained well how it can be done.
I am looking to create an app where users can download a map to their phone before they go to a specific place (in case there is no 3G signal there) and then use GPS to take specific routes that will have been marked on the maps.
I have noticed GoogleMaps 5 has just been released that enables caching.
Is this something I would be able to use or can you not incorporate google maps 5 into another app.
I am very new to Android and am not quite sure what can and can't be done as yet so 'm sorry if
this is a really silly question?
Thanks for any help!
Bex
Is this something I would be able to use or can you not incorporate google maps 5 into another app.
Google Maps (the app) does not use the same Google Maps (the SDK add-on) that the rest of us use. Hence, right now, offline caching is not available to us.
You might consider looking at OpenStreetMap, which has some Android integration and supports offline maps.