利用下面網頁可以不寫程式碼實現經緯度座標轉換文字地址

如何使用Python將經緯度座標轉換成地址

本文主要講述如何利用Python將經緯度座標轉換成文字形式的地址

第一步,註冊高德地圖API賬號,申請Web服務金鑰

第二步,瞭解並測試逆地理編碼介面

逆地理編碼介面地址:地理/逆地理編碼-API文件-開發指南-Web服務 API | 高德地圖API

逆地理編碼介面API服務地址:

如何使用Python將經緯度座標轉換成地址

逆地理編碼介面請求引數:

如何使用Python將經緯度座標轉換成地址

逆地理編碼介面主要返回引數:

如何使用Python將經緯度座標轉換成地址

接下來,對上述逆地理編碼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將經緯度座標轉換成地址

第三步,利用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”

# 進行地理編碼

print

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座標系,

在使用程式碼之前需要將輸入經緯度進行座標系轉換

下面的網址提供了一個不寫程式碼就可以進行地理座標系統轉換的工具

如果覺得本文對你的學習或工作有幫助,請點贊收藏並關注,謝謝!