Aplicativo GUI para pesquisar o nome de um país em um determinado estado ou cidade usando Python
Nestes artigos, vamos escrever scripts Python para pesquisar um país a partir de um determinado estado ou nome de cidade e vinculá-lo ao aplicativo GUI. Estaremos usando o módulo GeoPy. Os módulos GeoPy tornam mais fácil localizar as coordenadas de endereços, cidades, países, pontos de referência e CEP.
Antes de começar, precisamos instalar o módulo GeoPy, então vamos executar este comando em seu terminal.
pip install geopy
Abordagem:
- Módulo de importação
- Use a API Nominatim para acessar o conjunto de coordenadas correspondente
- geocode() para obter a localização de um determinado lugar
A GUI ficaria assim abaixo:
Nota: Nominatim usa dados do OpenStreetMap para encontrar locais na Terra por nome e endereço (geocodificação).
Abaixo está a implementação:
from
geopy.geocoders
import
Nominatim
geolocator
=
Nominatim(user_agent
=
"geoapiExercises"
)
location
=
geolocator.geocode(
"Delhi"
)
(
"Country Name: "
, location)
Resultado:
Nome do país: Delhi, Kotwali Tehsil, Central Delhi, Delhi, 110006, Índia
Aplicativo para pesquisa de país de determinada cidade / estado com Tkinter: Este script implementa a implementação acima em uma GUI.
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)
master
=
Tk()
master.configure(bg
=
'light grey'
)
place_res
=
StringVar();
res
=
StringVar();
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)
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
)
b
=
Button(master, text
=
"Show"
, command
=
getinfo )
b.grid(row
=
0
, column
=
2
, columnspan
=
2
,
rowspan
=
2
, padx
=
5
, pady
=
5
)
mainloop()
Resultado:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva