【Python+腾讯地图API】批量获取国内某地经纬度信息(详细步骤)

1、背景

我需要批量获取某些地点的经纬度信息,用于绘制相应的地理分布图。
一个一个在搜索引擎上查找很麻烦的,于是就希望能够利用Python程序和腾讯地图API批量操作。
方便快捷,而且一劳永逸。

2、步骤

(1)准备

把需要查找的地点名称放在一个Excel表格第一列里。
在这里插入图片描述

(2)代码

复制粘贴上去就是你的啦,不过别忘了改一下读取的表格的路径表格行数↓↓↓

import requests  
import xlrd  
import xlwt  
def tengxun(addr):  
    url = "https://apis.map.qq.com/jsapi?"  # 腾讯地图API接口  
    para = {
    
      
        "qt": "geoc",  
        "addr": addr,  # 传入地址参数  
        "output": "json",  
        "key": "D7EBZ-NHYKX-UAH4A-74TW4-6M2JE-UHFLY",  # 即腾讯地图API的key  
        "pf": "jsapi",  
        "ref": "jsapi"  
    }  
    req = requests.get(url, para)  # 请求数据  
    req = req.json()  # 转为json格式  
    # print(req)  
    m = req["detail"]  
    g = f"{
      
      m['pointx']},{
      
      m['pointy']}"  # 解析到经纬度数据  
    print(g.split(","))  
    return g  
newbook=xlwt.Workbook(encoding="utf-8",style_compression=0)  
newsheet=newbook.add_sheet("Sheet1",cell_overwrite_ok=True)  
################################################
readbook=xlrd.open_workbook("国内.xlsx")    ####修改路径 
################################################
readsheet=readbook.sheet_by_name("Sheet1")  
################################################
for i in range(141):        ####################修改表格行数
################################################
    name=readsheet.cell(i,0).value  
    try:  
        l=tengxun(name).split(",")  
        newsheet.write(i,0,eval(l[0]))  
        newsheet.write(i,1,eval(l[1]))  
    except:  
        continue  
newbook.save("对应经纬度信息.xls")

(3)结果

打开”对应经纬度信息.xls“结果如下图所示:
在这里插入图片描述

3、分析

Q:可以看到,上面表格里有很多空行。为什么没有获取到呢?
A:笔者经过测试,发现这种情况应该是地名不够详细导致,例如无法获取”中国药科大学“的经纬度信息,但是”江宁区中国药科大学”可以。

4、修改

(1)修改表格

我们对没有获取到经纬度信息的地名进行信息补充。
补充的信息放在对应行的第二列就好了,就像这样↓↓↓
在这里插入图片描述

(2)修改代码

把for循环里的

name=readsheet.cell(i,0).value  

改为:

name=readsheet.cell(i,1).value+readsheet.cell(i,0).value  

(3)结果

再次运行结果:
在这里插入图片描述
比之前好多了,但是还是有少数几个无法获取,可能是提供的信息还不够,不过还是大大减少了工作量。

扫描二维码关注公众号,回复: 14660259 查看本文章

4、总结

  • request库还不太熟悉,但是使用步骤好像类似。
  • tengxun()函数忘了是从哪位佬那抄来的,没找到原博客,侵删。

如果这篇博客对你有所帮助,点个赞吧,同时如果有什么问题,欢迎评论留言。

猜你喜欢

转载自blog.csdn.net/U202113837/article/details/129787789