in functions/source/here-integration-places/places-query.py [0:0]
def getPlaces(lat, lng, radius, category):
# get configuration
baseUrl = "https://places.api.here.com/places/v1"
appId = os.environ["appId"]
appCode = os.environ["appCode"]
# build request
url = '%s/discover/explore' % baseUrl
parameters = {
"app_id": appId,
"app_code": appCode,
"at": "{0},{1};u={2}".format(lat, lng, radius),
"cat": "" if category is None else category
}
# call API synchronously
response = requests.get(url, params=parameters)
# process response
try:
json = response.json()
except Exception:
print("no response", response.url)
return None
if "results" not in json:
print("invalid response", json)
return None
# extract places information
places = json["results"]["items"]
extractPlace = lambda p: {
"placeId": p['id'],
"lat": p["position"][0] if "position" in p.keys() else None,
"lng": p["position"][1] if "position" in p.keys() else None,
"distance": p["distance"] if "distance" in p.keys() else None,
"name": p["title"] if "title" in p.keys() else None,
"address": p["vicinity"] if "vicinity" in p.keys() else None,
"url": p["href"] if "href" in p.keys() else None,
"locationType": "display" if "position" in p.keys() else None,
"averageRating": p["averageRating"] if "averageRating" in p.keys() else None,
"categoryTitle": p["category"]["title"] if "category" in p.keys() else None,
"categoryId": p["category"]["id"] if "category" in p.keys() else None
}
places = map(extractPlace, places)
# return as list
return list(places)