直接上图
现在很多的数据分析中,都会用热力图来直观展示特征群体的分布情况,为后期的营销运营等服务。
本篇主要介绍,在经过前期数据整理后,利用python和百度地图API,如何根据拿到的地址列表绘制出热力图。
整个过程的思路大体分为部分:
1、读入已经整理好的地址列表,调用百度API功能取出各个地址对应的经纬度;
2、将所有地址及地址对应的经纬度,存入一个csv文件备份;
3、将经纬度数据整理成热力图html需要的格式;
4、按照热力图html格式,整理完成并打开。
一、申请百度开发者密匙
百度API是什么?百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,基于这些应用接口,我们就可以很方便地将实际地址转换为经纬度坐标。
如下图,在百度拾取坐标系统(http://api.map.baidu.com/lbsapi/getpoint/index.html)中,直接输入地址,点击“百度一下”,在右边选择对应的目标,即可复制出经纬度了,咱们接下来的经纬度就是这样来的。
使用百度地图API功能,需要先在百度开发者平台上http://lbsyun.baidu.com/,注册,然后申请密匙,应用名称自定义,应用类型选择浏览器端即可。(注意,如果调用代码是提示{"status":220,"message":"APP Referer校验失败"},说明浏览器的AK没在白名单中,最简单粗暴的方式,就是直接将白名单定为*,意思是所有的IP都能调用此API,有一丢丢危险,慎用哈!)
二、调用百度API取出各个地址对应的经纬度
定义一个函数取经纬度
from bs4 import BeautifulSoup
import requests
import csv
import re
#调用百度地图API查询位置
def getlocation(name):
bdurl='http://api.map.baidu.com/geocoder/v2/?address='
output='json'
ak='应用AK'#输入刚刚申请的AK
callback='showLocation'
uri=bdurl+name+'&output=t'+output+'&ak=