Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 도시의 경도와 위도를 얻는 방법은 무엇입니까?


도시의 경도와 위도를 가져오기 위해 geopy를 사용합니다. 기준 치수. 지역 타사 지오코더 및 기타 데이터 소스를 사용하여 주소, 도시, 국가 등의 좌표를 찾습니다.

우선 지리적 모듈이 설치되었습니다 -

pip install geopy

다음 예에서는 지명을 사용합니다. 지오코더를 사용하여 "하이데라바드" 도시의 경도와 위도를 찾습니다.

단계 -

  • Nominatim 지오코더 가져오기 지역에서 모듈.

  • Nominatim API를 초기화하고 지오코드를 사용합니다. 입력 문자열의 위치를 ​​가져오는 메소드입니다.

  • 마지막으로 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의 반대 작업을 수행하겠습니다. 먼저 좌표 집합을 제공하고 이 좌표가 나타내는 도시, 주 및 국가를 찾습니다. 콘솔에서 출력을 인쇄하는 대신 출력을 표시하기 위해 4개의 레이블이 있는 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을 사용하여 도시의 경도와 위도를 얻는 방법은 무엇입니까?