MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / createRangeLayer

Method createRangeLayer

src/openlayers/mapping/WebMap.js:3673–3705  ·  view source on GitHub ↗

* @private * @function WebMap.prototype.createRangeLayer * @description 创建分段图层 * @param {Object} layerInfo- 图层信息 * @param {Array} features - 所有feature结合 * @returns {ol.layer.Vector} 单值图层

(layerInfo, features)

Source from the content-addressed store, hash-verified

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

Callers 2

addLayerMethod · 0.95
WebMap.jsFile · 0.80

Calls 5

createRangeSourceMethod · 0.95
getFiterFeaturesMethod · 0.95
trimMethod · 0.80
setStyleMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected