利用下面網頁可以不寫程式碼實現經緯度座標轉換文字地址
本文主要講述如何利用Python將經緯度座標轉換成文字形式的地址
第一步,註冊高德地圖API賬號,申請Web服務金鑰
第二步,瞭解並測試逆地理編碼介面
逆地理編碼介面地址:地理/逆地理編碼-API文件-開發指南-Web服務 API | 高德地圖API
逆地理編碼介面API服務地址:
逆地理編碼介面請求引數:
逆地理編碼介面主要返回引數:
接下來,對上述逆地理編碼API進行一次簡單的測試。
當前請求引數為:
key:365ac412d6e22f49ce3d345270ecc643
location:121。49912,31。236729|121。475538,31。228207
batch:true
output:json
組合後的Url為:https://restapi。amap。com/v3/geocode/regeo?key=365ac412d6e22f49ce3d345270ecc643&location=121。49912,31。236729|121。475538,31。228207&batch=true&output=json
下圖為返回結果,可以看到兩處紅線標住的地方為返回的地址
第三步,利用Python和高德逆地理編碼介面實現經緯度座標轉文字地址
import
requests
# 執行一次高德地圖地理逆編碼的查詢
# 輸入值:coordList -> 經緯度的序列,currentKey -> 當前使用的Key
# 返回值:resultList -> 查詢成功,返回結果地址的序列
# -1 -> 執行當前查詢時Key的配額用完了
# -2 -> 執行當前查詢出錯
def
ExcuteSingleQuery
(
coordList
,
currentkey
):
# 1-將coordList中的經緯度座標連線成高德地圖API能夠識別的樣子
coordString
=
“”
# 當前coordList組成的string
for
currentCoord
in
coordList
:
coordString
+=
str
(
currentCoord
[
0
])
+
“,”
+
str
(
currentCoord
[
1
])
+
‘|’
# 2-地理編碼查詢需要的Url
output
=
‘json’
# 查詢返回的形式
batch
=
‘true’
# 是否支援多個查詢
base
=
‘https://restapi。amap。com/v3/geocode/regeo?’
# 逆地理編碼查詢Url的頭
currentUrl
=
base
+
“output=”
+
output
+
“&batch=”
+
batch
+
“&location=”
+
coordString
+
“&key=”
+
currentkey
# 3-提交請求
response
=
requests
。
get
(
currentUrl
)
# 提交請求
answer
=
response
。
json
()
# 接收返回
# 4-解析Json的內容
resultList
=
[]
# 用來存放逆地理編碼結果的空序列
if
answer
[
‘status’
]
==
‘1’
and
answer
[
‘info’
]
==
‘OK’
:
# 4。1-請求和返回都成功,則進行解析
tmpList
=
answer
[
‘regeocodes’
]
# 獲取所有結果座標點
for
i
in
range
(
0
,
len
(
tmpList
)):
try
:
# 解析‘,’分隔的經緯度
addressString
=
tmpList
[
i
][
‘formatted_address’
]
# 放入結果序列
resultList
。
append
(
addressString
)
except
:
# 如果發生錯誤則存入None
resultList
。
append
(
None
)
return
resultList
elif
answer
[
‘info’
]
==
‘DAILY_QUERY_OVER_LIMIT’
:
# 4。2-當前賬號的餘額用完了,返回-1
return
-
1
else
:
# 4。3-如果發生其他錯誤則返回-2
return
-
2
輸入測試資料,對上述程式碼進行測試
if
__name__
==
‘__main__’
:
# 建立測試地址經緯度座標集
coordList
=
[
“121。475538,31。228207”
,
“121。479475,31。235831”
,
“121。459444,31。233372”
,
“121。50825,31。2296841”
,
“121。518464,31。231464”
]
# 進行地理編碼
(
ExcuteSingleQuery
(
coordList
=
coordList
,
currentkey
=
“365ac412d6e22f49ce3d345270ecc643”
))
程式碼測試的結果如下圖所示
C
:
\
Users
\
Administrator
\
AppData
\
Local
\
Programs
\
Python
\
Python37
\
python
。
exe
E
:
/
地理資訊計算器歷史版本
/
20210301
/
20210301
/
giscalculator
/
gc_method
/
test
。
py
上海市黃浦區南京東路街道上海人民廣場上海博物館
上海市黃浦區南京東路街道上海旅遊品商廈南京路步行街
上海市靜安區石門二路街道國際麗都城
(
北京西路
)
上海市浦東新區陸家嘴街道仁恆濱江園
上海市浦東新區陸家嘴街道世紀大道299號陸家嘴1885廣場
Process
finished
with
exit
code
0
利用上述Python程式碼可實現經緯度座標到文字地址的轉換,值得注意的是輸入的座標必須是GCJ-02座標系,
在使用程式碼之前需要將輸入經緯度進行座標系轉換
下面的網址提供了一個不寫程式碼就可以進行地理座標系統轉換的工具
如果覺得本文對你的學習或工作有幫助,請點贊收藏並關注,謝謝!