En estos artículos, vamos a escribir secuencias de comandos de python para buscar un país desde un nombre de estado o ciudad determinado y vincularlo con la aplicación GUI. Usaremos el módulo GeoPy. Los módulos GeoPy facilitan la ubicación de las coordenadas de direcciones, ciudades, países, puntos de referencia y código postal.
Antes de comenzar, necesitamos instalar el módulo GeoPy, así que ejecutemos este comando en su terminal.
pip install geopy
Acercarse:
- Módulo de importación
- Utilice la API de Nominatim para acceder al conjunto de coordenadas correspondiente
- geocode() para obtener la ubicación de un lugar determinado
La GUI se vería a continuación:
Nota: Nominatim utiliza datos de OpenStreetMap para encontrar ubicaciones en la Tierra por nombre y dirección (codificación geográfica).
A continuación se muestra la implementación:
Python3
from geopy.geocoders import Nominatim geolocator = Nominatim(user_agent = "geoapiExercises") location = geolocator.geocode("Delhi") print("Country Name: ", location)
Producción:
Nombre del país: Delhi, Kotwali Tehsil, Centro de Delhi, Delhi, 110006, India
Aplicación para buscar el país de una ciudad/estado determinado con Tkinter: este script implementa la implementación anterior en una GUI.
Python3
# importing the modules from geopy.geocoders import Nominatim from tkinter import * from tkinter import messagebox def getinfo(): geolocator = Nominatim(user_agent = "geoapiExercises") place = e.get() place_res.set(place) location = geolocator.geocode(place) res.set(location) # object of tkinter # and background set for light grey master = Tk() master.configure(bg = 'light grey') # variable Classes in tkinter place_res = StringVar(); res = StringVar(); # creating label for each information # name using widget Label Label(master, text = "Enter place :" , bg = "light grey").grid(row = 0, sticky = W) Label(master, text = "Place :" , bg = "light grey").grid(row = 1, sticky = W) Label(master, text = "Country Address :" , bg = "light grey").grid(row = 2, sticky = W) # creating label for class variable # name using widget Entry Label(master, text = "", textvariable = place_res, bg = "light grey").grid(row = 1, column = 1, sticky = W) Label(master, text = "", textvariable = res, bg = "light grey").grid(row = 2, 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 = getinfo ) b.grid(row = 0, 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