如何使用Python获取城市的经纬度?

如何使用Python获取城市的经纬度?

要获取城市的经纬度,我们将使用 geopy 模块。 geopy 使用第三方地理编码器和其他数据源来定位地址、城市、国家等的坐标。

首先,请确保 geopy 模块已安装-

pip install geopy

在下面的示例中,我们将使用 Nominatim 地理编码器来找到城市“海得拉巴”的经度和纬度。

步骤−

  • geopy 模块中导入 Nominatim地理编码器

  • 初始化Nominatim API,并使用 geocode 方法获取输入字符串的位置。

  • 最后,通过 location.latitudelocation.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

在这个例子中,让我们做 Example 1 的反面。我们将先提供一组坐标,然后找出这些坐标所代表的城市、州和国家。但与在控制台上打印输出不同的是,我们将创建一个 tkinter 窗口,其中包含四个标签来显示输出。

步骤 –

  • 初始化 Nominatium API。

  • 使用 geolocator.reverse() 函数并提供坐标(纬度和经度)来获取位置数据。

  • 使用 location.raw[‘address’] 获取位置的地址,并遍历数据以找到城市、州和国家。

  • 在 tkinter 窗口内创建标签来显示数据。

Example 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获取城市的经纬度?

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程