usse/documentation/source/googlemaps.rst

45 lines
1.9 KiB
ReStructuredText

===============
Google Maps API
===============
``Google Maps`` has a *free* api that can be used to calculate distance matrixes as well as show point on a map.
In order to use this API you will need to request an API key from the `google cloud console <https://cloud.google.com/>`_.
This API can be used at a cost for each request, but Google gives ~200 dollars worth of request at the start of every month.
Using the Google API
####################
For a quick test to see if it was possible to geolocate each house and calculate the distance. For this a simple python script was used.
.. code-block:: python
origin_locations = {
"nfi_location" : (52.044867266861466, 4.3585175985355225),
"hoogstraat_location" : (52.08725689123654, 5.147180442716177),
"bakkersdijk_location" : (51.85802695253161, 4.482033956202426),
"korhoen_location" : (52.5219455005375, 5.732514040876346),
"harde_location" : (52.41650138296019, 5.870995170999243)
}
def get_distances(out_dict, destination_location):
for key in origin_locations:
distance = gmaps.distance_matrix(origin_locations[key], destination_location, mode = 'driving')
out_dict[key] = distance['rows'][0]['elements'][0]
We can do about 40.000 request for free each month. With about 1200 houses and 6 requests per house that would mean up to 7000 requests.
That is enough to build a quick PoC to see if this method would work.
.. image:: images/poc_houses_on_maps.png
This works and a lot of houses are shown on google maps with markers.
Google Ban
##########
Another result of this action was a Ban from google.
The reason for this was that I did not read the terms of use.
You are allowed to do 40K requests for free every month, just not several thousand in a few minutes. Oops.
.. image:: images/ban_google.png
Because we want to do more than 40k requests and dont want to pay for these requests, the project was switched to **O**\pen **S**\treet **M**\ap(OSM)