基于百度地图做热力图 您所在的位置:网站首页 百度地图热力图原理用什么技术 基于百度地图做热力图

基于百度地图做热力图

2024-02-27 07:22| 来源: 网络整理| 查看: 265

经过一天的学习,终于把基于百度地图做热力图搞出来了,现将流程分享如下:

1、收集整理数据

** 一列地名,一列数据。如下图所示 在这里插入图片描述

2、将地名转换成经纬度

只有转换为经纬度,才能自动定位在地图上的位置,为下步做热力图打基础

2.1进入百度开放平台(http://lbsyun.baidu.com/)获取AK码 注册登录之后点击控制台–>点击创建应用—>输入应用名称和ip白名单,点击创建! 在这里插入图片描述 2.2 获得api地址 开发文档—WEB服务API—正逆地理编码—地理编码—服务文档,可以获得接口地址。 在这里插入图片描述准备工作做好,直接上代码:

def gain_location(adress): api_url ="http://api.map.baidu.com/geocoding/v3/?address={adress}&output=json&ak=AK码&callback=showLocation".format(adress=adress) r = requests.get(api_url) r = r.text r = r.strip('showLocation&&showLocation(') r = r.strip(')') jsonData = json.loads(r) # 将json字符串转换为字典类型转为字典格式类型 return jsonData with open(r'附件2 北京地铁各站点进站客流分时汇总表.csv',encoding = 'UTF-8') as csvfile: #打开csv reader = csv.reader(csvfile) for line in reader: #读取csv里的数据 if reader.line_num == 1: continue if gain_location(line[0]).get('result', False): try: lng = gain_location(line[0])['result']['location']['lng'] # 经度 lat = gain_location(line[0])['result']['location']['lat'] # 纬度 count = line[1] # 地名计数 str_temp = '{"lat":' + str(lat) + ',"lng":' + str(lng) + ',"count":' + str(count) + '},' # 将经度,纬度,计数变成格式 print(str_temp) except: print(line[0]) # 打印出出问题的地名

只需要把文件导入进去,就能输出结果,是做热力图的标准格式,运行结果如下: 在这里插入图片描述

4、生成热力图

4.1 新建html文件 4.2 把做热力图源码添加进来 开发文档—JavaScript API—DEMO详情—覆盖物示例—添加热力图—将源码编辑器里的内容复制到新建html文件里。 4.3修改相关参数 point()中放中心点的经纬度,centerAndZoom(12)是地图缩放比例,相关信息可以在http://api.map.baidu.com/lbsapi/creatmap/查看 在这里插入图片描述 把第3步运行出来的结果放到这里来 在这里插入图片描述 “radius”:是热力图的半径,"maxOpacity"是热力图的透明度,max我理解的是根据count的值可以调节热力图的颜色。 在这里插入图片描述 4.4把做好的热力图打开 点击html右上角的浏览器打开热力图 在这里插入图片描述

最后的效果: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有