龙空技术网

python实现地理编码

不再依然 581

前言:

目前兄弟们对“python定位地理位置”可能比较讲究,咱们都想要学习一些“python定位地理位置”的相关文章。那么小编也在网摘上收集了一些对于“python定位地理位置””的相关知识,希望你们能喜欢,姐妹们快快来学习一下吧!

输入:中文地址信息,例如安徽为县天城镇都督村冲里18号

输出:经纬度坐标,例如107.34799754989581 30.50483335424108

功能:根据中文地址信息获取经纬度坐标

实现代码:

1

import json

2

from urllib.request import urlopen,quote

3

import xlrd

4

5

def readXLS(XLS_FILE,sheet0):

6

rb= xlrd.open_workbook(XLS_FILE)

7

rs= rb.sheets()[sheet0]

8

return rs

9

10

def getlnglat(adress):

11

url = ';

12

output = 'json'

13

ak = 'fdi11GHN3GYVQdzVnUPuLSScYBVxYDFK'

14

add = quote(adress)#使用quote进行编码 为了防止中文乱码

15

# add=adress

16

url2 = url + add + '&output=' + output + '&ak=' + ak

17

req = urlopen(url2)

18

res = req.read().decode()

19

temp = json.loads(res)

20

return temp

21

22

def getlatlon(sd_rs):

23

nrows_sd_rs=sd_rs.nrows

24

for i in range(4,nrows_sd_rs):

26

row=sd_rs.row_values(i)

27

print(i,i/nrows_sd_rs)

28

b = (row[11]+row[12]+row[9]).replace('#','号') # 第三列的地址

29

print(b)

30

try:

31

lng = getlnglat(b)['result']['location']['lng'] # 获取经度并写入

32

lat = getlnglat(b)['result']['location']['lat'] #获取纬度并写入

33

except KeyError as e:

34

lng=''

35

lat=''

36

f_err=open('f_err.txt','a')

37

f_err.write(str(i)+'\t')

38

f_err.close()

39

print(e)

40

print(lng,lat)

41

f_latlon = open('f_latlon.txt', 'a')

42

f_latlon.write(row[0]+'\t'+b+'\t'+str(lng)+'\t'+str(lat)+'\n')

43

f_latlon.close()

47

48

if __name__=='__main__':

50

sle_xls_file = "F:\医学大数据课题\数据副本\江苏省SLE数据库(两次随访合并) - 副本.xlsx"

51

sle_data_rs = readXLS(sle_xls_file, 1)

52

getlatlon(sle_data_rs)

实现效果:

喜欢记得点赞,在看,加关注(数据杂坛),将持续更新!

标签: #python定位地理位置