Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะรับลองจิจูดและละติจูดของเมืองโดยใช้ Python ได้อย่างไร


ในการรับลองจิจูดและละติจูดของเมือง เราจะใช้ภูมิศาสตร์ โมดูล. ภูมิศาสตร์ ใช้ geocoders บุคคลที่สามและแหล่งข้อมูลอื่นๆ เพื่อค้นหาพิกัดของที่อยู่ เมือง ประเทศ ฯลฯ

ก่อนอื่น ตรวจสอบให้แน่ใจว่า ภูมิศาสตร์ ติดตั้งโมดูลแล้ว -

pip install geopy

ในตัวอย่างต่อไปนี้ เราจะใช้ Nominatim geocoder เพื่อค้นหาลองจิจูดและละติจูดของเมือง "ไฮเดอราบาด"

ขั้นตอน -

  • นำเข้า Nominatim geocoder จาก ภูมิศาสตร์ โมดูล

  • เริ่มต้น Nominatim API และใช้ geocode วิธีรับตำแหน่งของสตริงอินพุต

  • สุดท้าย รับละติจูดและลองจิจูดของตำแหน่งโดย location.latitude และ location.longitude .

ตัวอย่างที่ 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)

ผลลัพธ์

มันจะพิมพ์ผลลัพธ์ต่อไปนี้บนคอนโซล -

The latitude of the location is: 17.360589
The longitude of the location is: 78.4740613

ในตัวอย่างนี้ ลองทำตรงกันข้ามกับตัวอย่างที่ 1 เราจะเริ่มต้นด้วยการระบุชุดพิกัดและค้นหาเมือง รัฐ และประเทศที่พิกัดเหล่านั้นเป็นตัวแทน แทนที่จะพิมพ์เอาต์พุตบนคอนโซล เราจะสร้างหน้าต่าง tkinter ที่มีป้ายกำกับสี่ป้ายเพื่อแสดงเอาต์พุต

ขั้นตอน -

  • เริ่มต้น Nominatium API

  • ใช้ geolocator.reverse() ฟังก์ชันและระบุพิกัด (ละติจูดและลองจิจูด) เพื่อรับข้อมูลตำแหน่ง

  • รับที่อยู่ของสถานที่โดยใช้ location.raw['address'] และสำรวจข้อมูลเพื่อค้นหาเมือง รัฐ และประเทศโดยใช้ address.get() .

  • สร้างป้ายกำกับภายในหน้าต่าง tkinter เพื่อแสดงข้อมูล

ตัวอย่างที่ 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()

ผลลัพธ์

มันจะสร้างผลลัพธ์ต่อไปนี้ -

จะรับลองจิจูดและละติจูดของเมืองโดยใช้ Python ได้อย่างไร