Terms and Conditions Google Maps: Can I store lat/lng and address components?

Viewed 10857

This question has been asked in a few places on SO, but I've found the answers to be either slightly contradictory or "thin"... so I'm not sure if asking again will help but here goes.

The google "help" page says that the google team maintains a "presence" on SO, so if you are a google chap, please could you make this clear, and if you are not please also make this clear, thank you :)

So, what I want to do... User searches for a set of locations. These will be used to form a travel itinerary. I want to take the lat/lng and the address components and store them in my own database so that when another uses search for trips in some country, some place etc etc I can go about finding them.

The big question, does the terms of conditions allow this? The relevant bit that worries me is...

10.1.3 Restrictions against Data Export or Copying.

... snip ...

(b) No Pre-Fetching, Caching, or Storage of Content. You must not pre-fetch, cache, or store any Content, except that you may store: (i) limited amounts of Content for the purpose of improving the performance of your Maps API Implementation if you do so temporarily (and in no event for more than 30 calendar days), ...snip... For example, you must not use the Content to create an independent database of "places" or other local listings information.

Would what I want to do violate this. It sounds to me like it might, but then that renders the question, why would I use google maps for this kind of application? Other travel sites appear to?!

6 Answers

The newest Google Maps Platform Terms of Service (which takes effect July 16, 2018) is a bit more explicit about this.

3.2.4 Restrictions Against Misusing the Services.

(a) No Scraping. Customer will not extract, export, or scrape Google Maps Content for use outside the Services. For example, Customer will not:(i) pre-fetch, cache, index, or store Google Maps Content for more than 30 days; (ii) bulk download geocodes; or (iii) copy business names, addresses, or user reviews.

Yes, the address might be public knowledge, but the process to obtain it is subject to the terms of the service you use...

This quote from their website (https://developers.google.com/maps/documentation/geocoding/geocoding-strategies) says you can save data for your use if you know you will need it many times, but recommends you update periodically.

Caching considerations

The Google Maps Platform Terms of Service allow you to cache geocodes (that is, store them on your server for a limited period). Caching can be useful if you have to repeatedly look up the same address. However, keep in mind that geocoding results change as our data gets more and more accurate. So even if you have cached data, you should refresh it periodically, to make sure you are getting the best geocodes for your locations.

TL;DR: I think storing lat/long from services provided by Google is not allowed

Google Maps Platforms terms (21.11.2019)

3.2.4 Restrictions Against Misusing the Services.

(a) No Scraping. Customer will not extract, export, or otherwise scrape Google Maps Content for use outside the Services. For example, Customer will not: (i) pre-fetch, index, store, reshare, or rehost Google Maps Content outside the services; (ii) bulk download Google Maps tiles, Street View images, geocodes, directions, distance matrix results, roads information, places information, elevation values, and time zone details; (iii) copy and save business names, addresses, or user reviews; or (iv) use Google Maps Content with text-to-speech services.

To me it looks like storing lat/long is (even explicitly) prohibited.

"Google Maps Content" is actually defined in the terms & conditions.

"Google Maps Content" means any content provided through the Services (whether created by Google or its third-party licensors), including map and terrain data, imagery, traffic data, and places data (including business listings).

Also the remark about it being ok to cache data for some time and periodically refresh it is no longer there, see Geocoding API Policies.

Pre-Fetching, Caching, or Storage of Content Applications using the Geocoding API are bound by the Google Maps Platform Terms of Service. Section 3.2.4(a) and (b) of the terms states that you must not pre-fetch, index, store, or cache any Content except under the limited conditions stated in the terms.

Note that the place ID, used to uniquely identify a place, is exempt from the caching restriction. You can therefore store place ID values indefinitely. Place ID values are returned in the place_id field in Geocoding API responses.

For what it's worth you can store Place IDs instead of lat/long ;-) You may want to use another service for lat/long geocoding.

Like others have said, the updated terms https://cloud.google.com/maps-platform/terms/#3.-license. section 3.2.3 (b) explicitly states (May 6, 2020)

(b) No Caching. Customer will not cache Google Maps Content except as expressly permitted under the Maps Service Specific Terms.

BUT

The specific terms (handily not linked in the terms, that I could easily see) mention this

(hopefully this is the specific terms https://cloud.google.com/maps-platform/terms/maps-service-terms updated June 14, 2020)

1.4 Caching. Customer can temporarily cache latitude (lat) and longitude (lng) values from the Directions API for up to 30 consecutive calendar days, after which Customer must delete the cached latitude and longitude values. Customer can cache Directions API Place ID (place_id) values, in accordance with the Directions API Policies.

Section 1.4 is for the directions API, but most of the other API's have the same exception. Unfortunately it doesn't mention address data.

Related