多点热力图(百度地图)

2 篇文章 0 订阅
1 篇文章 0 订阅

<!DOCTYPE html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

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

<title>CanvasLayer</title>

<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=你的秘钥"></script> -->

<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>

<script type="text/javascript" src="./Heatmap_min.js"></script>

<style type="text/css">

body, html,#container {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}

</style>

</head>

<body>

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

</body>

</html>

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<script type="text/javascript">

 

              var map = new BMap.Map("container",{minZoom:5,maxZoom:12});

                var point = new BMap.Point(113.93473, 22.54302);

                map.centerAndZoom(point, 18); // 初始化地图,设置中心点坐标和地图级别

                map.enableScrollWheelZoom(); // 允许滚轮缩放

                if(!isSupportCanvas()){

                    alert('热力图目前只支持有canvas支持的浏览器,您所使用的浏览器不能使用热力图功能~')

                }

                //详细的参数,可以查看heatmap.js的文档 https://github.com/pa7/heatmap.js/blob/master/README.md

                //参数说明如下:

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

                * opacity 热力的透明度,1-100

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

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

                *   {

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

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

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

                    }

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

                        value 为颜色值.

                */

                // var points = JSON.parse(data).list;

                var points = [

                    {"lng": 116.895579, "lat": 24.306521,"count":84500},

                    {"lng": 113.951068, "lat": 22.772504,"count":6200},

                    {"lng": 110.00006, "lat": 40.603564,"count":23000},

                    {"lng": 111.846788, "lat": 21.897821,"count":11000}

                    ]

                heatmapOverlay = new BMapLib.HeatmapOverlay({"radius":20});

                map.addOverlay(heatmapOverlay);

                heatmapOverlay.setDataSet({data:points,max:5000});

                //是否显示热力图

                function openHeatmap(){

                    heatmapOverlay.show();

                }

                function closeHeatmap(){

                    heatmapOverlay.hide();

                }

                closeHeatmap();

                function setGradient(){

                    /*格式如下所示:

                    {

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

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

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

                    }*/

                    var gradient = {};

                    var colors = document.querySelectorAll("input[type='color']");

                    colors = [].slice.call(colors,0);

                    colors.forEach(function(ele){

                        gradient[ele.getAttribute("data-key")] = ele.value;

                    });

                    heatmapOverlay.setOptions({"gradient":gradient});

                }

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

                function isSupportCanvas(){

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

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

                }

            

            openHeatmap();

</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值