views:

112

answers:

2

I've read the terms of service, and, from what I understand, I'm not allowed to store any information I retrieve from the Google Maps API. Are there any exceptions to this?

More to the point, I'm planning on building an application that shows the user several points of interest (like restaurants, libraries etc) at a certain distance around a location he chooses (it can be in one city or more, depending on the distance he chooses). There are two problems:

  1. The first problem is that (at least for my country) the geocoder doesn't locate exact addresses, at best it only locates street names (but completely ignores street numbers) in larger cities. It is even worse for smaller rural areas. So the only way to accurately show the places on the map is by storing their coordinates in the database.

  2. Another problem seems to be with calculating distances. To show the points located below a certain distance from the user, it would mean I would have to use GDirections to get all distances between the user's location and the other points, to see which ones to show. That would be really slow for the user (since I also have to set a small delay between requests), and it would also send a pretty large amount of requests to google. Would I be allowed to store those distances in a database?

The users would not be able to access a list of all the stored information, they would only see the names of the places, and a map with some markers on it.

Thank you.

A: 

Not an expert, but my understanding is that you need a commercial license, which starts at about $10,000 per year.

Edit: it is called Google Maps Premier

Edit 2: The restriction on storing the data is only for data you have obtained from google (obviously...). So if google is not able to geo-code properly and you have to obtain the data elsewhere, then there seems to be no licensing problem, and you can store the locations. With the lat/lon info in your db, you can calculate distances yourself - and therefore also store them in your db without licensing issues.

Ray
+2  A: 

The terms of use are not crystal clear on this issue, but I've always read them to indicate that you can store the geocodes in your database as long as you are only using them so that they can be shown in conjunction with a Google Map.

  • Section 10.3

    you may store limited amounts of Content for the purpose of improving the performance of your Maps API Implementation if you do so temporarily, securely, and in a manner that does not permit use of the Content outside of the Service

  • Section 10.12

    you must not use geocodes obtained through the Service except in conjunction with a Google map

The term "Temporarily" in 10.3 is a relative term that is not defined in this context, but the tutorial sited in the comments (and written by a Google employee) would support the view that storing geocoded results is permissable within these boundaries.

Mark