Requisito previo: Tkinter
En este artículo, vamos a escribir un script de python para obtener la distancia entre dos lugares y vincularlo con la aplicación GUI. Para instalar el módulo GeoPy, ejecute el siguiente comando en su terminal.
pip instalar geopy
Enfoque utilizado:
- Importe el módulo geopy.
- Inicialice la API de Nominatim para obtener la ubicación de la string de entrada.
- Obtenga latitud y longitud con geocodificación().
- Obtenga la distancia con el método de distancia() en geopy.
La GUI se vería a continuación:
A continuación se muestra la implementación:
Python3
# import module from geopy.geocoders import Nominatim from geopy import distance # initialize Nominatim API geolocator = Nominatim(user_agent="geoapiExercises") # place input Input_place1 = "delhi" Input_place2 = "patna" # Get location of the input strings place1 = geolocator.geocode(Input_place1) place2 = geolocator.geocode(Input_place2) # Get latitude and longitude Loc1_lat, Loc1_lon = (place1.latitude), (place1.longitude) Loc2_lat, Loc2_lon = (place2.latitude), (place2.longitude) location1 = (Loc1_lat, Loc1_lon) location2 = (Loc2_lat, Loc2_lon) # display the distance print(distance.distance(location1, location2).km, " kms")
Producción:
852.5518024607962 kms
Aplicación GUI para medir distancia con Tkinter:
Python3
# import modules from tkinter import * from geopy.geocoders import Nominatim from geopy import distance # user defined function def get_dis(): try: geolocator = Nominatim(user_agent="geoapiExercises") place1 = geolocator.geocode(str(e1.get())) place2 = geolocator.geocode(str(e2.get())) Loc1_lat,Loc1_lon = (place1.latitude),(place1.longitude) Loc2_lat,Loc2_lon = (place2.latitude),(place2.longitude) location1=(Loc1_lat,Loc1_lon) location2=(Loc2_lat,Loc2_lon) res = (str(distance.distance(location1, location2).km)+" Km") result.set(res) except: result.set("something went wrong") # object of tkinter # with background set to light grey master = Tk() master.configure(bg='light grey') master.title("Find Distance") # Variable Classes in tkinter result = StringVar(); # Creating label for each information # name using widget Label Label(master, text="Enter first place : " , bg = "light grey").grid(row=1, sticky=W) Label(master, text="Enter second place : " , bg = "light grey").grid(row=2, sticky=W) Label(master, text="Result :", bg = "light grey").grid(row=3, sticky=W) # Creating label for class variable # name using widget Entry Label(master, text="", textvariable=result,bg = "light grey").grid(row=3,column=1, sticky=W) e1 = Entry(master,width = 50) e1.grid(row=1, column=1) e2 = Entry(master,width = 50) e2.grid(row=2, column=1) # creating a button using the widget b = Button(master, text="Check", command=get_dis, bg = "white") b.grid(row=1, column=2,columnspan=2, rowspan=2,padx=5, pady=5,) mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA