code: def query_google(point, max_distance, key):
      
      if not key:
          return []
  
      if from_cache(GG_CACHE, point, max_distance):
          return from_cache(GG_CACHE, point, max_distance)
  
      req = requests.get(GOOGLE_PLACES_URL % (
          point.lat,
          point.lon,
          max_distance,
          key
      ))
  
      if req.status_code != 200:
          return []
      response = req.json()
      results = response['results']
      # l = len(results)
      final_results = []
      for local in results:
          final_results.append({
              'label': local['name'],
              'distance': Point(local['geometry']['location']['lat'], local['geometry']['location']['lng'], None).distance(point),
              # 'rank': (l-i)/float(l),
              'types': local['types'],
              'suggestion_type': 'GOOGLE'
              })
  
      google_insert_cache(point, final_results)
      return final_results
docs: Queries google maps API for a location
  
      Args:
          point (:obj:`Point`): Point location to query
          max_distance (float): Search radius, in meters
          key (str): Valid google maps api key
      Returns:
          :obj:`list` of :obj:`dict`: List of locations with the following format:
              {
                  'label': 'Coffee house',
                  'types': 'Commerce',
                  'suggestion_type': 'GOOGLE'
              }