* @private * @function WebMap.prototype.createRangeLayer * @description 创建分段图层 * @param {Object} layerInfo- 图层信息 * @param {Array} features - 所有feature结合 * @returns {ol.layer.Vector} 单值图层
(layerInfo, features)
| 3671 | * @returns {ol.layer.Vector} 单值图层 |
| 3672 | */ |
| 3673 | async createRangeLayer(layerInfo, features) { |
| 3674 | //这里获取styleGroup要用所以的feature |
| 3675 | let styleSource = await this.createRangeSource(layerInfo, features); |
| 3676 | let layer = new olLayer.Vector({ |
| 3677 | styleSource: styleSource, |
| 3678 | source: new Vector({ |
| 3679 | features: layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features, |
| 3680 | wrapX: false |
| 3681 | }) |
| 3682 | }); |
| 3683 | |
| 3684 | layer.setStyle((feature) => { |
| 3685 | let styleSource = layer.get('styleSource'); |
| 3686 | if (styleSource) { |
| 3687 | let labelField = styleSource.themeField; |
| 3688 | let value = Number(feature.get('attributes')[labelField.trim()]); |
| 3689 | let styleGroups = styleSource.styleGroups; |
| 3690 | for (let i = 0; i < styleGroups.length; i++) { |
| 3691 | if (i === 0) { |
| 3692 | if (value >= styleGroups[i].start && value <= styleGroups[i].end) { |
| 3693 | return styleGroups[i].olStyle; |
| 3694 | } |
| 3695 | } else { |
| 3696 | if (value > styleGroups[i].start && value <= styleGroups[i].end) { |
| 3697 | return styleGroups[i].olStyle; |
| 3698 | } |
| 3699 | } |
| 3700 | } |
| 3701 | } |
| 3702 | }); |
| 3703 | |
| 3704 | return layer; |
| 3705 | } |
| 3706 | |
| 3707 | /** |
| 3708 | * @private |
no test coverage detected