* @private * @function WebMap.prototype.createHeatLayer * @description 创建热力图图层 * @param {Object} layerInfo - 图层信息 * @param {Array} features -feature的集合 * @returns {ol.layer.Heatmap} 热力图图层
(layerInfo, features)
| 3424 | * @returns {ol.layer.Heatmap} 热力图图层 |
| 3425 | */ |
| 3426 | createHeatLayer(layerInfo, features) { |
| 3427 | //因为热力图,随着过滤,需要重新计算权重 |
| 3428 | features = layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features; |
| 3429 | let source = new Vector({ |
| 3430 | features: features, |
| 3431 | wrapX: false |
| 3432 | }); |
| 3433 | let layerOptions = { |
| 3434 | source: source |
| 3435 | }; |
| 3436 | let themeSetting = layerInfo.themeSetting; |
| 3437 | layerOptions.gradient = themeSetting.colors.slice(); |
| 3438 | layerOptions.radius = parseInt(themeSetting.radius); |
| 3439 | //自定义颜色 |
| 3440 | let customSettings = themeSetting.customSettings; |
| 3441 | for (let i in customSettings) { |
| 3442 | layerOptions.gradient[i] = customSettings[i]; |
| 3443 | } |
| 3444 | // 权重字段恢复 |
| 3445 | if (themeSetting.weight) { |
| 3446 | this.changeWeight(features, themeSetting.weight); |
| 3447 | } |
| 3448 | return new olLayer.Heatmap(layerOptions); |
| 3449 | } |
| 3450 | |
| 3451 | /** |
| 3452 | * @private |
no test coverage detected