GUI-Anwendung zum Suchen eines Ländernamens aus einem bestimmten Bundesland- oder Städtenamen mit Python
In diesen Artikeln werden wir Python-Skripte schreiben, um ein Land nach einem bestimmten Bundesland- oder Städtenamen zu durchsuchen und es mit der GUI-Anwendung zu verknüpfen. Wir werden das GeoPy-Modul verwenden. GeoPy-Module erleichtern das Auffinden der Koordinaten von Adressen, Städten, Ländern, Sehenswürdigkeiten und Postleitzahlen.
Bevor wir beginnen, müssen wir das GeoPy-Modul installieren. Führen Sie diesen Befehl auf Ihrem Terminal aus.
Pip Geopy installieren
Ansatz:
- Modul importieren
- Verwenden Sie die Nominatim-API, um auf den entsprechenden Koordinatensatz zuzugreifen
- geocode(), um den Standort eines bestimmten Ortes abzurufen
Die GUI würde wie folgt aussehen:
Hinweis: Nominatim verwendet OpenStreetMap-Daten, um Standorte auf der Erde anhand von Name und Adresse zu finden (Geokodierung).
Unten ist die Implementierung:
from
geopy.geocoders
import
Nominatim
geolocator
=
Nominatim(user_agent
=
"geoapiExercises"
)
location
=
geolocator.geocode(
"Delhi"
)
(
"Country Name: "
, location)
Ausgabe:
Ländername: Delhi, Kotwali Tehsil, Zentral-Delhi, Delhi, 110006, Indien
Anwendung für die Suche nach Land aus einer bestimmten Stadt / einem bestimmten Bundesland mit Tkinter: Dieses Skript implementiert die obige Implementierung in eine 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()
Ausgabe: