Cree una aplicación GUI para obtener distancia entre dos lugares usando Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *