<script> var lat = 37.481; var lng = 126.893; var zoom = 20; var mymap = L.map('mapid', { center: [lat, lng], zoom: zoom, }); L.tileLayer('http://tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(mymap); var pointList = []; var pointCnt = 10; var scale = 1000; for (var i = 0; i < pointCnt; i++) { pointList.push({ lat: lat + i / scale, lng: lng + i / scale, count: i }, ); } for (var i = 0; i < pointCnt; i++) { var point = pointList[i]; L.marker({ lat: point.lat, lng: point.lng }).addTo(mymap); } </script>
heatmap 표현을 위해서는 데이터가 필요하기 때문에 좌표정보와 데이터를 포함하는 오브젝트를 생성하여 처리합니다.
<script> // 이전 코드 var pointList = []; var pointCnt = 10; var scale = 1000; for (var i = 0; i < pointCnt; i++) { pointList.push({ lat: lat + i / scale, lng: lng + i / scale, count: i }, ); } for (var i = 0; i < pointCnt; i++) { var point = pointList[i]; L.marker({ lat: point.lat, lng: point.lng }).addTo(mymap); } var cfg = { //"radius": 2, "radius": 200, "maxOpacity": .5, //"scaleRadius": true, "scaleRadius": false, "useLocalExtrema": true, latField: 'lat', lngField: 'lng', valueField: 'count' }; var heatmapLayer = newHeatmapOverlay(cfg).addTo(mymap); var testData = { max: 10, data: pointList } heatmapLayer.setData(testData); </script>
해당 줌 영역에서 heatmap이 보이도록 설정값을 수정하였습니다.
“radius”: 200,
“scaleRadius”: false,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<script> // 이전 코드 var heatmapLayer = newHeatmapOverlay(cfg).addTo(mymap); var max = 10; var animationTimer = window.setInterval(function(){ for(var i =0; i < pointCnt; i++){ var point = pointList[i]; point.count = ( point.count + 1 ) % max } var testData = { max: max, data: pointList } heatmapLayer.setData(testData); }, 100) </script>