Để nhận kinh độ và vĩ độ của thành phố, chúng tôi sẽ sử dụng geopy mô-đun. geopy sử dụng bộ mã hóa địa lý của bên thứ ba và các nguồn dữ liệu khác để định vị tọa độ của địa chỉ, thành phố, quốc gia, v.v.
Trước hết, hãy đảm bảo geopy mô-đun đã được cài đặt -
pip install geopy
Trong ví dụ sau, chúng tôi sẽ sử dụng Nominatim bộ mã hóa địa lý để tìm kinh độ và vĩ độ của thành phố "Hyderabad".
Các bước -
-
Nhập Bộ mã hóa địa lý Nominatim từ geopy mô-đun.
-
Khởi tạo API Nominatim và sử dụng mã địa lý để lấy vị trí của chuỗi đầu vào.
-
Cuối cùng, lấy vĩ độ và kinh độ của vị trí theo location.latitude và location.longitude .
Ví dụ 1
# Import the required library from geopy.geocoders import Nominatim # Initialize Nominatim API geolocator = Nominatim(user_agent="MyApp") location = geolocator.geocode("Hyderabad") print("The latitude of the location is: ", location.latitude) print("The longitude of the location is: ", location.longitude)
Đầu ra
Nó sẽ in đầu ra sau trên bảng điều khiển -
The latitude of the location is: 17.360589 The longitude of the location is: 78.4740613
Trong ví dụ này, hãy làm ngược lại với Ví dụ 1. Chúng ta sẽ bắt đầu bằng cách cung cấp một tập hợp các tọa độ và tìm thành phố, tiểu bang và quốc gia mà các tọa độ đó đại diện. Thay vì in đầu ra trên bảng điều khiển, chúng tôi sẽ tạo một cửa sổ tkinter với bốn nhãn để hiển thị đầu ra.
Các bước -
-
Khởi tạo API Nominatium.
-
Sử dụng geolocator.reverse () chức năng và cung cấp các tọa độ (vĩ độ và kinh độ) để lấy dữ liệu vị trí.
-
Nhận địa chỉ của vị trí bằng cách sử dụng location.raw ['address'] và duyệt dữ liệu để tìm thành phố, tiểu bang và quốc gia bằng cách sử dụng address.get () .
-
Tạo nhãn bên trong cửa sổ tkinter để hiển thị dữ liệu.
Ví dụ 2
from tkinter import * from geopy.geocoders import Nominatim # Create an instance of tkinter frame win = Tk() # Define geometry of the window win.geometry("700x350") # Initialize Nominatim API geolocator = Nominatim(user_agent="MyApp") # Latitude & Longitude input coordinates = "17.3850 , 78.4867" location = geolocator.reverse(coordinates) address = location.raw['address'] # Traverse the data city = address.get('city', '') state = address.get('state', '') country = address.get('country', '') # Create a Label widget label1=Label(text="Given Latitude and Longitude: " + coordinates, font=("Calibri", 24, "bold")) label1.pack(pady=20) label2=Label(text="The city is: " + city, font=("Calibri", 24, "bold")) label2.pack(pady=20) label3=Label(text="The state is: " + state, font=("Calibri", 24, "bold")) label3.pack(pady=20) label4=Label(text="The country is: " + country, font=("Calibri", 24, "bold")) label4.pack(pady=20) win.mainloop()
Đầu ra
Nó sẽ tạo ra kết quả sau -