博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【最新】python爬取全国主要城市经纬度
阅读量:3956 次
发布时间:2019-05-24

本文共 1360 字,大约阅读时间需要 4 分钟。

文章目录


前言

有时候我们做项目可能需要很多地点的经纬度信息,这个时候就需要程序来批量获取了。本文通过调用百度地图API接口和python程序,批量获取经纬度信息并且写入CSV文件。

我已经生成了所有城市经纬度csv文件,大家可以直接下载:

在这里插入图片描述
一共三百多个,全国所有的地级市都有。

具体过程

1.申请百度API服务密钥

进入百度地图开放平台

登录,打开控制台,进入我的应用
创建应用
输入应用名称
如果不想对IP做任何限制,可以设置为0.0.0.0/0
在这里插入图片描述

提交后可以在我的应用找到访问密钥

在这里插入图片描述

2.python代码实现

代码如下(示例):

# -*-  coding: utf-8 -*-import jsonfrom urllib.request import urlopen, quoteimport requests,csvaddress=['沈阳','大连','长春','哈尔滨','上海','南京','杭州','宁波','合肥','福州','厦门','南昌','济南','青岛','郑州','武汉','长沙','广州','深圳','南宁','海口','重庆','成都','贵阳','昆明','拉萨','西安','兰州','西宁','银川','乌鲁木齐']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 tempf = 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()

最后结果

我已经生成了所有城市经纬度csv文件,大家可以直接下载。

在这里插入图片描述

补充

我们可以进入百度地图API的官网

下滑找到Web服务API
在这里插入图片描述
找到地理编码
在这里插入图片描述
查看服务文档
在这里插入图片描述
所以对于python代码,我们可以在address数组里面添加具体地点。
在这里插入图片描述

转载地址:http://gkxzi.baihongyu.com/

你可能感兴趣的文章
JDK工具
查看>>
JNA-JNI升级版
查看>>
JNA-JNI升级版
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>