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")
print("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: