kdamevski's picture
Upload folder using huggingface_hub
2d144e4
raw
history blame
2.31 kB
import googlemaps
from datetime import datetime
from pprint import pprint
class AddressLocator:
def __init__(self):
self.maps = googlemaps.Client(key='AIzaSyAFUBwCyykt-8nfOYqGvUZbXV0dMnQYTJ4')
# Takes the name of a place and returns the exact address
def get_location(self, sentence):
sentence = sentence.lower()
commands = ["take picture", "go to", "land", "take off"]
for command in commands:
if command in sentence:
address_start_index = sentence.index(command) + len(command) + 1
address = sentence[address_start_index:].strip()
try:
response = self.maps.places(query=address)
results = response.get('results')
if results:
return results[0]['formatted_address']
else:
return None
except Exception as e:
print(e)
return None
return None
# Takes the name of a place and returns the route from one location to a single destination
def compute_route(self, uav_location, destination):
now = datetime.now()
directions_result = self.maps.directions(uav_location, destination,
mode="driving",
optimize_waypoints=True,
departure_time=now
)
directions = directions_result[0]['legs'][0]['steps']
instructions = [step['html_instructions'] for step in directions]
text_instructions = [self.strip_html_tags(instruction) for instruction in instructions]
return text_instructions
@staticmethod
def strip_html_tags(text):
import re
clean = re.compile('<.*?>')
return re.sub(clean, '', text)
# Testing
address_locator = AddressLocator()
# Placeholder
# uav_location = "Current location"
loc = address_locator.get_location("Go to Chick-fil-a on W Broad St")
print(loc)
loc2 = address_locator.get_location("Go to Roots on W Grace St")
print(loc2)
res = address_locator.compute_route(loc, loc2)
for direction in res:
print(direction)