Question

I am devoloping an app that let the user know its location. I am using this example

But I also seen here that "The Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited". So I cannot use Geocoder without displaying the result on the map?

Was it helpful?

Solution

Geocoder, the class that you use which, for Android is under the package:android.location.Geocoder.

That is different from Google Geocoding API:
https://developers.google.com/maps/documentation/geocoding/?hl=fr
for which we'd use the url:
http://maps.googleapis.com/maps/api/geocode/output?parameters

There is a GeoCoder class for javascript which is related to the Google Geocoding API which is the Geocoder class of the Google Maps API v3. (searching for which takes us to: https://developers.google.com/maps/documentation/javascript/services?hl=fr#Geocoding)

So when there is reference to "The Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited."

It would be for the API and related class of the v3 API, not the android.location.Geocoder.

Also, i would like you to know about:
https://code.google.com/p/android/issues/detail?id=8816

I have faced that one.

OTHER TIPS

Actually, you can use Geocoding API, there is no limit. See my last answer

Get current location using json

TLDR: You should be fine.

The content that you are referencing is indeed for Google's REST API's and states:

The Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited. For complete details on allowed usage, consult the Maps API Terms of Service License Restrictions.

This will not affect the use of the Android as far as I am aware. Referencing this answer it seems that:

Therefore there is no hard limit on the the Android GeoCode API useage, more just a fair useage policy per device (client)

From the TOS:

(a) Free Access (No Fees). Your Maps API Implementation must be generally accessible to users without charge and must not require a fee-based subscription or other fee-based restricted access. This rule applies to Your Content and any other content in your Maps API Implementation, whether Your Content or the other content is in existence now or is added later.

However:

(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).)

I've always found the TOS a bit difficult to grasp myself and have ended up contacting Google. While they've always been perfectly amicable it has sometimes taken some time for a response. I hope this helps clear this up for you and anyone else that comes across it.

You can use the Android Geocoder without needing to display the results on the map.

The geocoding service for Android is abstracted from any particular server-side implementation and is dependent on the OEM implementing this feature in the device. In the above documentation, it says:

The Geocoder class requires a backend service that is not included in the core android framework. The Geocoder query methods will return an empty list if there no backend service in the platform. Use the isPresent() method to determine whether a Geocoder implementation exists.

In other words, the Android Open-Source Project includes only a proxy class for the Geocoder service, a base abstract GeocoderProvider to be implemented, and an an interface for location providers implementing the Geocoder services - not the actual Geocoder service implementation.

So, when your app is running on a device, it may be accessing any number of geocoding providers when using the Android Geocoder API, depending on how that particular OEM implemented the service on that particular device. Google may have an agreement with some OEMs to provide these services via their own web-based Geocoding API, but this agreement does not involve you as a developer and would not force the web-based Geocoding API Terms of Service on you (since you have no way of knowing whether or not your app is actually using a Google service).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top