python 2000坐标系和经纬度转换_Python 高德经纬度和省市区的相互转换

本文介绍了如何使用Python结合高德地图API,进行经纬度和省市区街道信息之间的转换。通过读取Excel中存储的经纬度数据,调用高德API获取详细地址信息,并将结果回写到Excel,反之亦然。
摘要由CSDN通过智能技术生成

需求:用经纬度的值,获取省市区街道信息

因其经纬度是 高德的,所以需要用到高德地图的api。

实现方法/步骤:

1、把经纬度数据,存放在excel表格里面。

2、用python去读取数据,然后执行高德api接口。

3、把接口返回的数据,写入到excel表格里面。

初始经纬度数据:

a5a4b7b1e6833191a2b50c4e98355f17.png

import requestsfrom openpyxl import load_workbookworkbook = load_workbook(filename = "location.xlsx")workbook.sheetnamessheet = workbook["Sheet1"]sheet2 = workbook["Sheet2"]listString = []listArr = []# 获取表格所有行for val in sheet.rows:    for i in val:        listString.append(i.value)# 按2个拆分成数组def list_split(items, n):    return [items[i:i+n] for i in range(0, len(items), n)]if '__main__' == __name__:    listArr = list_split(listString, 2)# print(listString)# print(listArr)# 高德地图的KEY,和location 参数,经度在前,维度在后data = {    'key': 'ab8***************************148',    'location': '',}for val in listArr[1:len(listArr)]:    # 先判断excel的数据是不是空的    if val[0]!=None or val[1] != None:        # 添加经度和维度的值        data['location'] = str(val[0]) + ',' + str(val[1])        answer = []        url = "http://restapi.amap.com/v3/geocode/regeo"        response = requests.get(url,data)        answer.append(response.json())        # print(answer)        for valInfo in answer:            province = valInfo ['regeocode']['addressComponent']['province']            city = valInfo ['regeocode']['addressComponent']['city']            district = valInfo ['regeocode']['addressComponent']['district']            township = valInfo ['regeocode']['addressComponent']['township']            street = valInfo ['regeocode']['addressComponent']['streetNumber']['street']            # 街道数据为[]时,返回'',不然会报错            if len(street)==0:                street = ''            line = [val[0],val[1],province,city,district,township,street]            # print(line)            sheet2.append(line)workbook.save(filename = "location.xlsx")

执行后结果数据:

e7108882bab1e5995c02c3d3f0d75ae7.png

反之:用省市区获取经纬度也是差不多的,只不过是api接口不同而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值