python利用百度地图api获取poi点地址、坐标数据

本文介绍了如何使用Python3结合百度地图API获取POI(Point of Interest)的地址和坐标信息。通过构建查询条件、生成SN、发送请求、解析数据到存储数据的步骤详细阐述了操作流程。示例中,作者展示了获取江苏省养殖场数据的过程。
摘要由CSDN通过智能技术生成

1.目标

百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,使用百度地图API需要注册百度账号,通过百度地图开发者认证,在控制台新建自己的应用,获得密钥。本文主要讲获取到密钥之后的操作,编写python3脚本利用百度地图API获取poi地址和坐标点,并进行数据保存。
百度地图开放平台:http://lbsyun.baidu.com/apiconsole/key?application=key
API接口文档:http://lbsyun.baidu.com/index.php?title=webapi/place-suggestion-api

2.步骤

  1. 构建查询条件
  2. 构建url
  3. 发送请求获取数据
  4. 解析数据
  5. 存储数据

3.具体操作

在百度地图开放平台获取到ak和sk之后,进行下面的操作。
在这里插入图片描述

3.1构建查询条件

构建查询条件可以通过两种方式:

  1. 用key,value方式组建之后转码,如:
 kwd = {"query": "ATM机","tag":"银行","region": "224","output": "json", "ak": ak,"city_limit":"true"}
 query_str=‘/place/v2/search?{}’.format(urllib.parse.urlencode(kwd))
  1. 手动拼接url再转码
 queryStr = '/place/v2/search/?query=%s&output=json&ak=%s&region=131' % (“苏州拙政园”,ak)
 encodedStr = urllib.parse.quote(queryStr, safe="/:=&?#+!$,;'@()*[]")

ps:我一般用第二种,用确定的名称去query,如“苏州拙政园”,“上海迪士尼”

3.2生成sn,构建url

我们获取到的ak直接加到url里面,但是sk要经过加密生成sn才能使用
在这里插入图片描述
sn生成方式(官方代码):

# -*- coding: utf-8 -*- 
# 第一行必须有,否则报中文字符非ascii码错误
import urllib
import hashlib

# 以get请求为例http://api.map.baidu.com/geocoder/v2/?address=百度大厦&output=json&ak=yourak
queryStr = '/geocoder/v2/?address=百度大厦&output=json&ak=yourak'

# 对queryStr进行转码,safe内的保留字符不转换
encodedStr = urllib.quote(queryStr, s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值