如何在Python中獲取地理位置?


Python中有很多庫提供地理位置服務,其中最值得注意的是geopy模組,它允許程式設計師對地址和地點進行地理編碼和反向地理編碼。geopy包簡化了計算兩點之間距離的過程,還提供了兩點之間距離的計算。

Python中有一些庫允許操作地理資料,包括GeoDjango、GeoPandas和PyProj。這些庫簡化了程式設計師操作地理資料(如點、線和多邊形)的過程,從而可以開發需要地圖和空間分析的應用程式。

可以使用geopy庫在Python中獲取地理位置。以下步驟指導您如何在Python中獲取地理位置:

演算法

  • 在命令提示符或終端中,輸入pip install geopy來安裝Geopy庫。

  • 匯入所需的Geopy庫模組。地理編碼需要Nominatim類,表示地理點的Point類也是必需的。

from geopy.geocoders import Nominatim
from geopy.point import Point
  • 建立一個Nominatim類物件,這將允許您執行地理編碼。您可以傳入使用者代理字串來標識您的程式。

  • 要對地址或位置進行地理編碼,請使用Nominatim類的geocode方法。此方法接受您要進行地理編碼的位置的字串。

語法

geolocator = Nominatim(user_agent="my_app")
location = geolocator.geocode("1600 Amphitheatre Parkway, Mountain View, CA")
  • geocode函式返回一個Location物件,其中包含有關地理編碼位置的資訊。可以透過Point物件的latitude和longitude屬性訪問位置的緯度和經度座標。

語法

point = Point(location.latitude, location.longitude)

方法一:從名稱獲取位置資訊

示例1

可以使用geopy提取給定地點的座標或緯度和經度。它可以用來用座標表示位置。

# importing geopy library
from geopy.geocoders import Nominatim

# calling the Nominatim tool
loc = Nominatim(user_agent="Get Prayagraj")

# entering the location name
getLoc = loc.geocode("Civil Lines Prayagraj")

# printing address
print(getLoc.address)

# printing latitude and longitude
print("Latitude = ", getLoc.latitude, "\n")
print("Longitude = ", getLoc.longitude)

輸出

Civil Lines Prayagraj , Uttar Pradesh , 211001 , India
Latitude =25.454479
Longitude = 81.8338255

方法二:使用緯度和經度識別位置

此方法與上述方法完全相同;唯一的區別是,我們將使用reverse()方法替換geocode函式,該方法接收座標(緯度和經度)作為引數。此方法在接收到座標後返回地址。

示例2

# importing modules
from geopy.geocoders import Nominatim

# calling the nominatim tool
geoLoc = Nominatim(user_agent="GetPrayagraj")

# passing the coordinates
locname = geoLoc.reverse("26.7674446, 81.109758")

# printing the address/location name
print(locname.address)

輸出

Vinayak City Centre , Tashkant Marg , Civil Lines , Prayagraj , Uttar Pradesh , 211001 , India

結論

在Python中獲取地理位置資料,Google Maps API是最受歡迎和最友好的方法之一,但還有其他選擇。透過安裝googlemaps庫並提供有效的API金鑰,我們可以快速獲取任何地址的經度和緯度座標。其他選擇包括OpenStreetMap API和GeoPy庫。

安全性以及靈活性。通過幾個簡單的步驟,開發人員可以定義自定義裝飾器並將其應用於檢視,以修改其行為或強制執行訪問控制。

更新於:2023年7月21日

7000+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.