* @private * @function WebMap.prototype.createRankSymbolLayer * @description 创建等级符号图层 * @param {Object} layerInfo - 图层信息 * @param {Array} features - 添加到图层上的features * @returns {ol.layer.Vector} 矢量图层
(layerInfo, features)
| 4228 | * @returns {ol.layer.Vector} 矢量图层 |
| 4229 | */ |
| 4230 | async createRankSymbolLayer(layerInfo, features) { |
| 4231 | let styleSource = await this.createRankStyleSource(layerInfo, features, layerInfo.featureType); |
| 4232 | let layer = new olLayer.Vector({ |
| 4233 | styleSource, |
| 4234 | source: new Vector({ |
| 4235 | features: layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features, |
| 4236 | wrapX: false |
| 4237 | }), |
| 4238 | renderMode: 'image' |
| 4239 | }); |
| 4240 | layer.setStyle((feature) => { |
| 4241 | let styleSource = layer.get('styleSource'); |
| 4242 | let themeField = styleSource.parameters.themeSetting.themeField; |
| 4243 | let value = Number(feature.get('attributes')[themeField]); |
| 4244 | let styleGroups = styleSource.styleGroups; |
| 4245 | for (let i = 0, len = styleGroups.length; i < len; i++) { |
| 4246 | if (value >= styleGroups[i].start && value < styleGroups[i].end) { |
| 4247 | return styleSource.styleGroups[i].olStyle; |
| 4248 | } |
| 4249 | } |
| 4250 | }); |
| 4251 | return layer; |
| 4252 | } |
| 4253 | /** |
| 4254 | * @private |
| 4255 | * @function WebMap.prototype.createRankSymbolLayer |
no test coverage detected