多點熱力圖(百度地圖)

<!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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章