Application to get address details from zip code Using Python
Last Updated :
20 Apr, 2022
Prerequisite: Tkinter
In this article, we are going to write scripts to get address details from a given Zip code or Pincode using tkinter and geopy module in python, Tkinter is the most commonly used GUI module in python to illustrate graphical objects and geopy is a python module to locate the coordinates of addresses, cities, countries, landmarks, and zip code.
Installation:
The tkinter module is an in-built module in Python, however, we need to install geopy module:
pip install geopy
Approach:
- Import geopy module.
- Use Nominatim API to access the corresponding to a set of coordinates, nominatim uses OpenStreetMap data to find locations on Earth by name and address (geocoding).
- Use geocode() to get the location of given Zipcode and displaying it.
Below is the implementation of the above approach:
Python3
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent = "geoapiExercises" )
zipcode = "800011"
location = geolocator.geocode(zipcode)
print ( "Zipcode:" ,zipcode)
print ( "Details of the Zipcode:" )
print (location)
|
Output:
Zipcode: 800011
Details of the Zipcode:
Danapur, Dinapur-Cum-Khagaul, Patna, Bihar, 800011, India
Below is a GUI implementation of the above program using tkinter module:
Python3
from geopy.geocoders import Nominatim
from tkinter import *
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)
master = Tk()
master.configure(bg = 'light grey' )
res = StringVar();
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)
Label(master, text = " ", textvariable=res,bg = " light grey").grid(row = 3 ,column = 1 , sticky = W)
e = Entry(master)
e.grid(row = 0 , column = 1 )
b = Button(master, text = "Show" , command = zip_code )
b.grid(row = 0 , column = 2 ,columnspan = 2 , rowspan = 2 ,padx = 5 , pady = 5 )
mainloop()
|
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...