百度地图api的简单应用(一):POI检索

使用之前,需要注册一个百度地图开发者账号,最好申请一个认证以获取更高的使用配额和并发上限。

注册之后,申请一个应用,获得一个ak(密钥),并填写ip地址白名单。(这里我使用0.0.0.0/0,查了自己的ip但百度好像总是说我ip不对,算了)

百度地图api的原理是,把你想输入的参数(调用功能、具体参数)体现在url中,把url打开,会返回一个json文件(也可xml文件,但默认json,且方便),这个json文件内包含了你想要的各种信息。

一般最常用的就是poi(point of interests)检索了,我们以此为例,尝试一下地点检索功能。

import json
import requests
import pandas as pd

feature_data = []
query = '银行'
zx = [31.15,121.41];
ys = [31.30,121.60]
zb = str(zx[0]) + ',' + str(zx[1]) + ',' + str(ys[0]) + ',' + str(ys[1])
ak = '我的密钥(这个得保密,不然每日额度可能直接被别人用了)'


def url_to_file(url):
    data = requests.get(url).text
    hjson = json.loads(data)
    if hjson['message'] == 'ok':
        datalist = hjson['results']
        for each in datalist:
            feature_data.append(each)


for k in range(100):
    url = 'http://api.map.baidu.com/place/v2/search?query=' + query + '&bounds=' + zb + '&page_size=20&page_num=' + str(
        k) + '&output=json&ak=' + ak
    url_to_file(url)

feature = pd.DataFrame(feature_data)
feature.to_csv(str(query)+'_按矩形.csv')

然而,打开csv文件,会出现乱码。

这时把文件用记事本方式打开->另存为->换一种字符编码(我将utf-8变为ANSI),便可以打开了。

 

posted on 2019-09-05 12:50  青锋剃刀  阅读(4689)  评论(1编辑  收藏  举报