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
# Importing required module from geopy.geocoders import Nominatim # Using Nominatim Api geolocator = Nominatim(user_agent = "geoapiExercises" ) # Zipocde input zipcode = "800011" # Using geocode() location = geolocator.geocode(zipcode) # Displaying address details 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
# Importing required modules from geopy.geocoders import Nominatim from tkinter import * # Funtion to get zipcode input 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) # Creating tkinter object # and background set for light grey master = Tk() master.configure(bg = 'light grey' ) # Variable Classes in tkinter res = StringVar(); # Creating label for each information 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) # Creating label for class variable Label(master, text = " ", textvariable=res,bg = " light grey").grid(row = 3 ,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 = zip_code ) b.grid(row = 0 , column = 2 ,columnspan = 2 , rowspan = 2 ,padx = 5 , pady = 5 ) mainloop() # this code belongs to Satyam kumar (ksatyam858) |
Output:
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.