当我们要制作一个热力图层,可以通过以下 3 步来实现:
引入类
在 require 中需引入
"esri/layers/FeatureLayer", "esri/renderers/Renderer",
在 function 中加入
FeatureLayer, Renderer,
新建热力图层
新建图层函数,包含了图层属性定义以及渲染器。
heatmFeaLayers = function(){ //热力图渲染器 var heatmapRenderer = new esri.renderer.HeatmapRenderer({ colorStops: [ {ratio: 0.45, color: "rgba(000,000,255,0)"}, {ratio: 0.55, color: "rgb(000,255,255)"}, {ratio: 0.65, color: "rgb(000,255,000)"}, {ratio: 0.95, color: "rgb(255,255,000)"}, {ratio: 1.00, color: "rgb(255,000,000)"}, ], blurRadius: 10, maxPixelIntensity: 10, minPixelIntensity: 1 }); var layerDefinition = { "geometryType": "esriGeometryPoint", "fields": [{ "num": "num", editable: true, nullable: true, "type": "esriFieldTypeInteger", "alias": "数量" }] }; var featureCollection = { layerDefinition: layerDefinition, featureSet: null }; //创建 FeatureLayer 图层 var featureLayer = new esri.layers.FeatureLayer(featureCollection, { mode: esri.layers.FeatureLayer.MODE_SNAPSHOT, outFields: ["*"], opacity: .8 }); //设置渲染方式 featureLayer.setRenderer(heatmapRenderer); return featureLayer; }
新建图层的时候就可以直接使用我们上面写好的函数。
heatmapfeatureLayer_1 = heatmFeaLayers(); map.addLayer(heatmapfeatureLayer_1);
将点添加至图层的图形中
将坐标制作为几何点加入图层中即可,可使用代码:
var point = new esri.geometry.Point(x, y, new esri.SpatialReference({wkid: 4326})); heatmapfeatureLayer_1 .add(new esri.Graphic(point));
以上 3 步即可实现向地图中增加一个热力图层。