leafletjs+heatmapjs繪制熱力地圖

前面兩篇其實(shí)都是為了寫一下leaflet-heatmap.js
最后搜了一下github https://github.com/Leaflet/Leaflet.heat
加載了leaflet.js和heatmap.js,就可以用leaflet-heatmap.js來繪制熱力地圖了。

  • 首先,這是要展示的數(shù)據(jù),有max代表所有數(shù)據(jù)的最大值,lat和Ing代表經(jīng)緯度的值,count是要展示的數(shù)據(jù),后面配置會(huì)有講到,所以max應(yīng)該是count中的最大值。
// don't forget to include leaflet-heatmap.js
var testData = {
  max: 8,
  data: [{lat: 24.6408, lng:46.7728, count: 3},{lat: 50.75, lng:-1.55, count: 1}, ...]
};

  • 很熟悉,就是我們講leaflet的基礎(chǔ)層的初始化。
var baseLayer = L.tileLayer(
  'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{
    attribution: '...',
    maxZoom: 18
  }
);
  • cfg中所有heatmapjs的參數(shù)都可以用。另外加了額外的參數(shù),都有說明
var cfg = {
  // radius should be small ONLY if scaleRadius is true (or small radius is intended)
  // if scaleRadius is false it will be the constant radius used in pixels
  "radius": 2,
  "maxOpacity": .8, 
  // scales the radius based on map zoom
  "scaleRadius": true, 
  // if set to false the heatmap uses the global maximum for colorization
  // if activated: uses the data maximum within the current map boundaries 
  //   (there will always be a red spot with useLocalExtremas true)
  "useLocalExtrema": true,
  // which field name in your data represents the latitude - default "lat"
  latField: 'lat',
  // which field name in your data represents the longitude - default "lng"
  lngField: 'lng',
  // which field name in your data represents the data value - default "value"
  valueField: 'count'
};
  • 初始化 heatmapLayer ,也就是將熱力圖看作一層,還記得說地圖的時(shí)候,是說它們是一層一層堆積的么?
var heatmapLayer = new HeatmapOverlay(cfg);

var map = new L.Map('map-canvas', {
  center: new L.LatLng(25.6586, -80.3568),
  zoom: 4,
  layers: [baseLayer, heatmapLayer]
});

heatmapLayer.setData(testData);

setDate每次改變值,熱力圖也是會(huì)更新的。

原生態(tài)的配色被吐槽太丑,現(xiàn)在的大家覺得有好一點(diǎn)么?

作者給的圖

咱的配色

看了一下代碼,也就200來行,主要是重寫了setData,addData的方法,另外跟地圖銜接的有addTo和onRemove ,使之適應(yīng)熱力圖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 了解一下其中的一些API接口。經(jīng)過了解才知道這只是一大個(gè)地圖包,并沒有提供現(xiàn)實(shí)的離線地圖的方案。帶我的師傅說可以了...
    寒劍飄零閱讀 2,746評論 1 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 亂談Leaflet的插件在WebGIS中作用 姐妹篇 從Mapbox的插件看Web GIS的發(fā)展[https://...
    brandonxiang閱讀 10,083評論 1 29
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,935評論 0 33
  • 任何一種成功都是靠積累得來的,即使你看到有人一夜爆紅,看到有人一下子發(fā)表了一個(gè)研究成果,這都是靠平時(shí)的努力積累換來...
    李陽_98d1閱讀 186評論 0 0

友情鏈接更多精彩內(nèi)容