|
import googlemaps |
|
import streamlit as st |
|
from datetime import datetime |
|
|
|
|
|
|
|
gmaps = googlemaps.Client(key='AIzaSyDybq2mxujekZVivmr03Y5-GGHXesn4TLI') |
|
|
|
def get_directions(source, destination): |
|
now = datetime.now() |
|
|
|
modes = ['driving', 'walking', 'bicycling', 'transit'] |
|
directions_info = {} |
|
for mode in modes: |
|
directions_result = gmaps.directions(source, destination, mode=mode, departure_time=now) |
|
if directions_result: |
|
directions_info[mode] = directions_result[0]['legs'][0]['steps'] |
|
else: |
|
directions_info[mode] = "No available routes." |
|
return directions_info |
|
|
|
|
|
st.title("πΊοΈ Google Maps Directions") |
|
st.sidebar.header('User Input Features') |
|
|
|
|
|
source_location = st.sidebar.text_input("Source Location", "Mound, MN") |
|
destination_location = st.sidebar.text_input("Destination Location", "Minneapolis, MN") |
|
|
|
if st.sidebar.button('Get Directions'): |
|
directions_info = get_directions(source_location, destination_location) |
|
|
|
|
|
for mode, directions in directions_info.items(): |
|
st.write(f"## Directions by {mode.capitalize()}") |
|
if directions == "No available routes.": |
|
st.write(directions) |
|
else: |
|
for i, step in enumerate(directions): |
|
st.write(f"{i+1}. {step['html_instructions']}") |
|
|