Google Geocoding API use in violation of terms?

Platform (Android, iOS, Website): Website

Browser, if a website issue (Firefox, Chrome, etc) : N/A

URLs (aka web addresses) of any relevant observations or pages: https://www.inaturalist.org/observations/import_photos

Screenshots of what you are seeing (instructions for taking a screenshot on computers and mobile devices: https://www.take-a-screenshot.org/):

Screenshot from 2020-09-07 11-22-15

Description of problem (please provide a set of steps we can use to replicate the issue, and make as many as you need.):

When creating an observation (at least via Batch upload, haven’t tested other methods) if the photo doesn’t have EXIF tags for GPS location, then the user can search for a location in the place search box, this will search with the Google Maps Geocoding API.

Once a user selects a result the GPS coordinates are shown and are saved, the same coordinates are then returned via the API request for the observation.

However according to the Maps Service Terms at https://cloud.google.com/maps-platform/terms/maps-service-terms#3.-geocoding-api

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

So you’re not allowed to store the lat/lng values longer than 30 days, the only thing you can store is the place_id.

Does iNat have some exception to this, or is something else happening that I don’t understand?

I think that’s a misunderstanding of caching. Caching would be to find remembered Lat/Lon from specific text. Once you have both for the observation you are no longer referencing one from the other and both are independent fields now.

1 Like

They do seem pretty strict that you’re not supposed to keep pretty much anything you get (not just cache):

3.2.3(a): No Scraping. Customer will not export, extract, 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.

Doubt they actually mind this usage, tbh (this is mostly legalese “you’re not allowed to compete with us by using our own data”) but iNat does copy addresses too sometimes :)

1 Like

I don’t think this use triggers the no scraping clause, because each search is user triggered and you’re just doing the one geocoder per search (plus autocomplete).

However https://developers.google.com/maps/documentation/geocoding/policies#pre-fetching,-caching,-or-storage-of-content also says

Applications using the Geocoding API are bound by the Google Maps Platform Terms of Service. Section 3.2.3(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.

“Store” and “cache” are considered the same here, it says you can’t store any content, where the geocoded lng/lat form part of the content that the Geocoding API returns. Whether just the coordinates is significant enough to trigger this clause is unclear.

It’s also unclear if this is enforceable downstream or it simply means that Google could cut off service for violating this.

So it is also a question around once you’ve saved the geocode (lng/lat pairs for the observation) how bound are you by the Google Terms for future use of that data? The terms are quite strict that the geocoding results, if shown on a map, must be a Google map, that’s okay on the iNat website because the maps are Google Maps, but if I then download CC0 licensed observations which were geocoded with Google and publish that on a non-google map, is that okay?

I’m not sure about all of this, I just want to be sure that observations which users select an open license for are available without any uncertainty and not tainted by any terms or license that would restrict that open license.

1 Like

Your coordinates are not content stored or owned by Google. No one can have claims over your coordinates no matter how you obtained them!
Google’s content is defined like this in the Terms of Use:
“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).

Your coordinates are obtained via the service but they are not and cannot be owned by it!

As a side note: caching and storing are different things. That they appear in a single sentence does not make them “the same”. Geocoding, geocode and coordinates are also different things.

5 Likes

@reiner has it right. For what it’s worth, we work with Google on maps implementation in our apps and website.

3 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.