文章目录 前言 具体过程 1.申请百度API服务密钥 2.python代码实现 最后结果 补充 女朋友生日快乐代码—>>>html生日快乐代码 html表白代码大全—>>>html表白代码大全 个人主页地址:皮小孩的个人主页 前言 有时候我们做项目可能需要很多地点的经纬度信息,这个时候就需要程序来批量获取了。本文通过调用百度地图API接口和python程序,批量获取经纬度信息并且写入CSV文件。 我已经生成了所有城市经纬度csv文件,大家可以直接下载:全国所有城市经纬度csv下载 一共三百多个,全国所有的地级市都有。 具体过程 1.申请百度API服务密钥 进入百度地图开放平台http://lbsyun.baidu.com/ 登录,打开控制台,进入我的应用 创建应用 如果不想对IP做任何限制,可以设置为0.0.0.0/0 提交后可以在我的应用找到访问密钥 2.python代码实现 代码如下(示例): # -*- coding: utf-8 -*- import json from urllib.request import urlopen, quote import requests,csv address=['沈阳','大连','长春','哈尔滨','上海','南京','杭州','宁波','合肥','福州','厦门','南昌','济南','青岛','郑州','武汉','长沙','广州','深圳','南宁','海口','重庆','成都','贵阳','昆明','拉萨','西安','兰州','西宁','银川','乌鲁木齐'] def getlnglat(address): url = 'http://api.map.baidu.com/geocoding/v3/' output = 'json' ak = '' #'你申请的密钥***' add = quote(address) #由于本文城市变量为中文,为防止乱码,先用quote进行编码 uri = url + '?' + 'address=' + add + '&output=' + output + '&ak=' + ak req = urlopen(uri) res = req.read().decode() #将其他编码的字符串解码成unicode temp = json.loads(res) #对json数据进行解析 return temp f = open('city.csv','w',encoding='utf-8',newline='') csv_writer = csv.writer(f) csv_writer.writerow(["city", "lng", "lat"]) for i in address: lng = getlnglat(i)['result']['location']['lng'] #采用构造的函数来获取经度 lat = getlnglat(i)['result']['location']['lat'] #获取纬度 str_temp = [i,lng,lat] csv_writer.writerow(str_temp) #写入文档 f.close() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 最后结果 我已经生成了所有城市经纬度csv文件,大家可以直接下载。全国所有城市经纬度csv下载 补充 我们可以进入百度地图API的官网http://lbsyun.baidu.com/ 下滑找到Web服务API 找到地理编码 查看服务文档 所以对于python代码,我们可以在address数组里面添加具体地点。 ———————————————— 版权声明:本文为CSDN博主「皮小孩ls」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_44809707/article/details/110295465 |
|
来自: 昵称QAb6ICvc > 《python》