Class: HeatMapLayer

mapboxgl.supermap.HeatMapLayer

热力图层类。

new mapboxgl.supermap.HeatMapLayer(name, options)

mapboxgl/overlay/HeatMapLayer.js, line 16
Name Type Description
name string

图层名称。

options Object

构造参数。

Name Type Default Description
map mapboxgl.Map

mapboxgl map 对象。

featureWeight string

对应 feature 属性中的热点权重字段名称,权重值类型为 float。

id string 可选

专题图层ID。默认使用 CommonUtil.createUniqueID("HeatMapLayer_") 创建专题图层 ID。

radius number 50 可选

热点渲染的最大半径(热点像素半径),单位为 px,当 useGeoUnit参数 为 true 时,单位使用当前图层地理坐标单位。热点显示的时候以精确点为中心点开始往四周辐射衰减,其衰减半径和权重值成比列。

loadWhileAnimating boolean true 可选

是否实时重绘。(当绘制大数据量要素的情况下会出现卡顿,建议把该参数设为false)。

opacity number 1 可选

图层透明度。

colors Array.<string> ['blue','cyan','lime','yellow','red'] 可选

颜色线性渐变数组,颜色值必须为canvas所支。

useGeoUnit boolean false 可选

使用地理单位,即默认热点半径默认使用像素单位。 当设置为 true 时,热点半径和图层地理坐标保持一致。

Fires

Extends

Members

canvasContextObject

热点图主绘制对象。

colorsArray.<string>

颜色线性渐变数组,颜色值必须为 canvas 所支。

Default Value:
['blue','cyan','lime','yellow','red']

EVENT_TYPES

监听一个自定义事件可用如下方式: 热点图自定义事件信息,事件调用时的属性与具体事件类型相对应。

All event objects have at least the following properties: {Object} object - A reference to layer.events.object. {DOMElement} element - A reference to layer.events.element.

支持的事件如下 (另外包含 <SuperMap.Layer 中定义的其他事件>): featuresadded - 热点添加完成时触发。传递参数为添加的热点信息数组和操作成功与否信息。 参数类型:{features: features, succeed: succeed} featuresremoved - 热点被删除时触发。传递参数为删除的热点信息数组和操作成功与否信息。 参数类型:{features: features, succeed: succeed} featuresdrawcompleted - 热点图渲染完成时触发,没有额外属性。

featuresArray.<SuperMap.Feature.Vector>

热点信息数组,记录存储图层上添加的所有热点信息。

featureWeightstring

对应 feature 属性中的热点权重字段名称,权重值类型为 float。

Example
//feature.attributes中表示权重的字段为 height,则在 HeatMapLayer 的 featureWeight 参数赋值为 "height"。
feature1.attributes.height = 7.0;
feature2.attributes.height = 6.0;
var heatMapLayer = new mapboxgl.supermap.HeatMapLayer("heatmaplayer",{"featureWeight":"height"});
heatMapLayer.addFeatures([feature1,feature2]);

idstring

热力图图层 id。

loadWhileAnimatingboolean

是否实时重绘。(当绘制大数据量要素的情况下会出现卡顿,建议把该参数设为false)。

Default Value:
true

热力图图层 map。

maxHeightnumber

当前绘制面板宽度。和当前 map 窗口高度一致。

maxWeightnumber

设置权重最大值。如果不设置此属性,将按照当前屏幕范围内热点所拥有的权重最大值绘制热点图。

maxWidthnumber

当前绘制面板宽度。和当前 map 窗口宽度一致。

minWeightnumber

设置权重最小值。如果不设置此属性,将按照当前屏幕范围内热点所拥有的权重最小值绘制热点图。

namestring

图层名字。

opacitynumber

图层透明度,取值范围[0,1]。

Default Value:
1

radiusnumber

热点渲染的最大半径(热点像素半径), 热点显示的时候以精确点为中心点开始往四周辐射衰减, 其衰减半径和权重值成比列。

Default Value:
50

rootCanvasObject

热点图主绘制面板。

supportedboolean

当前浏览器是否支持 canvas 绘制, 决定了热点图是否可用,内部判断使用。

useGeoUnitboolean

使用地理单位,即默认热点半径默认使用像素单位。 当设置为 true 时,热点半径和图层地理坐标保持一致。

visibilityboolean

图层显示状态属性。

Default Value:
true

Events

changelayer

mapboxgl/overlay/HeatMapLayer.js, line 300

图层属性改变之后触发。

Properties:
Name Type Description
layer Object

图层。

property string

被改变的图层属性。

featuresadded

mapboxgl/overlay/HeatMapLayer.js, line 263

要素添加完成之后触发。

Properties:
Name Type Description
features GeoJSONObject

被添加的要素。

succeed boolean

要素是否成功添加。

featuresremoved

mapboxgl/overlay/HeatMapLayer.js, line 560

要素删除之后触发。

Properties:
Name Type Description
features Array.<SuperMap.Feature.Vector>

需要被删除的要素。

succeed boolean

要素删除成功与否。

Methods

addFeatures(features)

mapboxgl/overlay/HeatMapLayer.js, line 235

添加热点信息。

Name Type Description
features GeoJSONObject

待添加的要素数组。

Example
var geojson = {
     "type": "FeatureCollection",
     "features": [
         {
             "type": "feature",
             "geometry": {
                 "type": "Point",  //只支持point类型
                 "coordinates": [0, 0]
             },
             "properties": {
                 "height": Math.random()*9,
                 "geoRadius": useGeoRadius?radius:null
             }
         }
     ]
  };
var heatMapLayer = new mapboxgl.supermap.HeatMapLayer("heatmaplayer",{"featureWeight":"height"});                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   pLayer = new mapboxgl.supermap.HeatMapLayer("heatmaplayer",{"featureWeight":"height"});
heatMapLayer.addFeatures(geojson);
map.addLayer(heatMapLayer);

getPixelXY(x, y)

mapboxgl/overlay/HeatMapLayer.js, line 484

转换地理坐标为相对于当前窗口左上角的像素坐标。

Name Type Description
x number

热点的像素 x 坐标。

y number

热点的像素 y 坐标。

moveTo(layerID, before)

mapboxgl/overlay/HeatMapLayer.js, line 579

将图层移动到某个图层之前。

Name Type Default Description
layerID string

待插入的图层ID。

before boolean true 可选

是否将本图层插入到图层 id 为 layerID 的图层之前(如果为 false 则将本图层插入到图层 id 为 layerID 的图层之后)。

onAdd()

mapboxgl/overlay/HeatMapLayer.js, line 178

向底图添加该图层

refresh()

mapboxgl/overlay/HeatMapLayer.js, line 274

强制刷新当前热点显示,在图层热点数组发生变化后调用,更新显示。

refresh()

mapboxgl/overlay/theme/ThemeLayer.js, line 106

强制刷新当前热点显示,在图层热点数组发生变化后调用,更新显示。

removeAllFeatures()

mapboxgl/overlay/HeatMapLayer.js, line 570

移除全部的热点信息。

removeFeatures(features)

mapboxgl/overlay/HeatMapLayer.js, line 531

移除指定的热点信息。

Name Type Description
features Array.<SuperMap.Feature.Vector>

热点信息数组。

removeFromMap()

mapboxgl/overlay/HeatMapLayer.js, line 205

从底图删除该图层。

setOpacity(opacity)

mapboxgl/overlay/HeatMapLayer.js, line 288

设置图层的不透明度,取值[0-1]之间。

Name Type Description
opacity number 可选

透明度。

setVisibility(visibility)

mapboxgl/overlay/HeatMapLayer.js, line 605

设置图层可见性,设置图层的隐藏,显示,重绘的相应的可见标记。

Name Type Description
visibility boolean 可选

是否显示图层(当前地图的resolution在最大最小resolution之间)。

toiClientFeature(features)

mapboxgl/overlay/HeatMapLayer.js, line 503

转为 iClient 要素。

Name Type Description
features GeoJSONObject

待添加的要素数组。

updateHeatPoints(bounds)

mapboxgl/overlay/HeatMapLayer.js, line 311

刷新热点图显示。

Name Type Description
bounds mapboxgl.LngLatBounds

当前显示范围。