Requisito previo: Tkinter
En este artículo, vamos a escribir secuencias de comandos para obtener los detalles de la dirección de un código postal o código PIN determinado usando tkinter y el módulo geopy en python, Tkinter es el módulo GUI más utilizado en python para ilustrar objetos gráficos y geopy es un módulo de python para localizar las coordenadas de direcciones, ciudades, países, puntos de referencia y código postal.
Instalación:
El módulo tkinter es un módulo incorporado en Python, sin embargo, necesitamos instalar el módulo geopy :
pip install geopy
Acercarse:
- Importar módulo geopy .
- Use la API de Nominatim para acceder a la correspondiente a un conjunto de coordenadas, nominatim usa datos de OpenStreetMap para encontrar ubicaciones en la Tierra por nombre y dirección (geocodificación).
- Use geocode() para obtener la ubicación del código postal dado y mostrarlo .
A continuación se muestra la implementación del enfoque anterior:
Python3
# Importing required module from geopy.geocoders import Nominatim # Using Nominatim Api geolocator = Nominatim(user_agent="geoapiExercises") # Zipcode input zipcode = "800011" # Using geocode() location = geolocator.geocode(zipcode) # Displaying address details print("Zipcode:",zipcode) print("Details of the Zipcode:") print(location)
Producción:
Zipcode: 800011 Details of the Zipcode: Danapur, Dinapur-Cum-Khagaul, Patna, Bihar, 800011, India
A continuación se muestra una implementación de GUI del programa anterior utilizando el módulo tkinter :
Python3
# Importing required modules from geopy.geocoders import Nominatim from tkinter import * # Function to get zipcode input def zip_code(): try: geolocator = Nominatim(user_agent="geoapiExercises") zipcode = str(e.get()) location = geolocator.geocode(zipcode) res.set(location.address) except: location = "Oops! something went wrong" res.set(location) # Creating tkinter object # and background set for light grey master = Tk() master.configure(bg='light grey') # Variable Classes in tkinter res = StringVar(); # Creating label for each information Label(master, text="Zipcode: " , bg = "light grey").grid(row=0, sticky=W) Label(master, text="Details of the pincode:", bg = "light grey").grid(row=3, sticky=W) # Creating label for class variable Label(master, text="", textvariable=res,bg = "light grey").grid(row=3,column=1, sticky=W) e = Entry(master) e.grid(row=0, column=1) # Creating a button using the widget # Button that will call the submit function b = Button(master, text="Show", command=zip_code ) b.grid(row=0, column=2,columnspan=2, rowspan=2,padx=5, pady=5) mainloop() # this code belongs to Satyam kumar (ksatyam858)
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