没有编程基础也可通过高德地图完成炫酷的热力图分析

        我们常常看到一些分析报告中将用户实际分布信息展示在地图中,可以很直观地看到具体哪些片区的用户活跃度高,根据这些片区的特征可以有效分析出用户群体的一些基本性质,以生鲜电商为例,比如提取出近半年较为活跃的用户订单配送地址均为一些小区,那么可以判断出这些用户都是一些家庭用户,可以根据这些家庭用户的性质策划一些场景化的活动,比如周末聚餐,食材与菜谱全套推荐等。

热力图样例

        那么如何制作这样的热力图呢?其实非常简单,没有编程经验的同学也能很快学会,只需要简单的Excel操作就可以了。

1.数据准备

        用户在使用App或者线上购物时,其位置信息都会被记录在后台,以经纬度的形式存储在公司数据库中,只要把这些经纬度信息提取出来就可以了,随便找一个研发小哥都能很快把数据调取出来,拿到的数据是这样的:

经纬度原始数据

        数量可以是这个地址的订单量、用户数量、App打开次数等等指标,只要是想衡量某个地区某个指标的密度就行。

接下来在excel里处理一下,将三个字段连接在一起,每一行加工成如下的形式,加粗的部分为经纬度数值。   

        {"lng":116.191031,"lat":39.988585,"count":10},

       {"lng":116.389275,"lat":39.925818,"count":11},

       {"lng":116.287444,"lat":39.810742,"count":12},

       {"lng":116.481707,"lat":39.940089,"count":13},

       {"lng":116.410588,"lat":39.880172,"count":1999},

       {"lng":116.394816,"lat":39.91181,"count":15},

       {"lng":116.416002,"lat":39.952917,"count":16}

2. 修改代码

        用notepad或者记事本将本段代码复制进去,找到var points 这一行,将刚刚加工好的数据复制进去,注意最后一行没有逗号。

<!doctype html>

<html>

<head>

    <meta charset="utf-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">

    <title>热力图</title>

    <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>

    <style>

        html,

        body,

        #container {

            margin: 0;

            padding: 0;

            width: 100%;

            height: 100%;

        }

    </style>

</head>

<body>

<div id="container"></div>

<div class="input-card" style="width: auto;">

    <div class="input-item">

        <button class="btn" onclick="heatmap.show()">显示热力图</button>

    </div>

    <div class="input-item">

        <button class="btn" onclick="heatmap.hide()">关闭热力图</button>

    </div>

</div>

<script src="//webapi.amap.com/maps?v=1.4.13&key=您申请的key值"></script>

<script src="//a.amap.com/jsapi_demos/static/resource/heatmapData.js"></script>

<script>

    var map = new AMap.Map("container", {

        resizeEnable: true,

        center: [116.418261, 39.921984],

        zoom: 11

    });

    if (!isSupportCanvas()) {

        alert('热力图仅对支持canvas的浏览器适用,您所使用的浏览器不能使用热力图功能,请换个浏览器试试~')

    }

    //详细的参数,可以查看heatmap.js的文档 http://www.patrick-wied.at/static/heatmapjs/docs.html

    //参数说明如下:

    /* visible 热力图是否显示,默认为true

    * opacity 热力图的透明度,分别对应heatmap.js的minOpacity和maxOpacity

    * radius 势力图的每个点的半径大小

    * gradient  {JSON} 热力图的渐变区间 . gradient如下所示

    * {

    .2:'rgb(0, 255, 255)',

    .5:'rgb(0, 110, 255)',

    .8:'rgb(100, 0, 255)'

    }

    其中 key 表示插值的位置, 0-1

    value 为颜色值

    */

    var heatmap;

    map.plugin(["AMap.Heatmap"], function () {

        //初始化heatmap对象

        heatmap = new AMap.Heatmap(map, {

            radius: 25, //给定半径

            opacity: [0, 0.8]

            /*,

            gradient:{

                0.5: 'blue',

                0.65: 'rgb(117,211,248)',

                0.7: 'rgb(0, 255, 0)',

                0.9: '#ffea00',

                1.0: 'red'

            }

            */

        });

      var points =[

        {"lng":116.191031,"lat":39.988585,"count":10},

        {"lng":116.389275,"lat":39.925818,"count":11},

        {"lng":116.287444,"lat":39.810742,"count":12},

        {"lng":116.481707,"lat":39.940089,"count":13},

        {"lng":116.410588,"lat":39.880172,"count":1999},

        {"lng":116.394816,"lat":39.91181,"count":15},

        {"lng":116.416002,"lat":39.952917,"count":16}

    ];

        //设置数据集:

        heatmap.setDataSet({

            data: points,

            max: 100

        });

    });

    //判断浏览区是否支持canvas

    function isSupportCanvas() {

        var elem = document.createElement('canvas');

        return !!(elem.getContext && elem.getContext('2d'));

    }

</script>

</body>

</html>

复制位置示意

3.执行代码,完成热力图

        打开浏览器,输入地址:https://lbs.amap.com/api/javascript-api/example/selflayer/heatmap   ;进入高德地图开放平台,界面如下。

高德地图开放平台界面

        将刚刚修改完的代码复制到红框中,点击运行,热力图就制作完成了。

4.补充说明

        提取数据时一定要确定清楚,取得的经纬度是否与高德地图坐标系一致,如果不一致,还需要对经纬度进行转换,高德地图与腾讯地图用的一套坐标系,百度地图用的另一套坐标系。


        如果您觉得我的文章有意思,欢迎关注哦,定期分享原创运营、数据分析干货知识

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容