Skip to content

Commit 8212dd4

Browse files
committed
【update】1) webMap支持单值专题图自定义样式
(reviewed by chengl)
1 parent f4a3406 commit 8212dd4

File tree

1 file changed

+35
-16
lines changed

1 file changed

+35
-16
lines changed

src/openlayers/mapping/WebMap.js

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2948,8 +2948,7 @@ export class WebMap extends Observable {
29482948
let featureType = parameters.featureType,
29492949
style = parameters.style,
29502950
themeSetting = parameters.themeSetting;
2951-
let fieldName = themeSetting.themeField,
2952-
colors = themeSetting.colors;
2951+
let fieldName = themeSetting.themeField;
29532952

29542953
let names = [],
29552954
customSettings = themeSetting.customSettings;
@@ -2968,37 +2967,57 @@ export class WebMap extends Observable {
29682967
}
29692968
}
29702969

2971-
//获取一定量的颜色
2972-
let curentColors = colors;
2973-
curentColors = ColorsPickerUtil.getGradientColors(curentColors, names.length);
29742970

29752971
//生成styleGroup
29762972
let styleGroup = [];
29772973
names.forEach(function (name, index) {
29782974
//兼容之前自定义是用key,现在因为数据支持编辑,需要用属性值。
29792975
let key = this.webMapVersion === "1.0" ? index : name;
2980-
let color = curentColors[key];
2981-
if (key in customSettings) {
2982-
color = customSettings[key];
2983-
}
2984-
2985-
if (featureType === "LINE") {
2986-
style.strokeColor = color;
2976+
let custom = customSettings[key];
2977+
if(Util.isString(custom)) {
2978+
//兼容之前自定义只存储一个color
2979+
custom = this.getCustomSetting(style, custom, featureType);
2980+
customSettings[key] = custom;
2981+
}
2982+
2983+
// 转化成 ol 样式
2984+
let olStyle, type = custom.type;
2985+
if(type === 'SYMBOL_POINT') {
2986+
olStyle = StyleUtils.getSymbolStyle(custom);
2987+
} else if(type === 'SVG_POINT') {
2988+
olStyle = StyleUtils.getSVGStyle(custom);
2989+
} else if(type === 'IMAGE_POINT') {
2990+
olStyle = StyleUtils.getImageStyle(custom);
29872991
} else {
2988-
style.fillColor = color;
2992+
olStyle = StyleUtils.toOpenLayersStyle(custom, featureType);
29892993
}
2990-
// 转化成 ol 样式
2991-
let olStyle = StyleUtils.toOpenLayersStyle(style, featureType);
29922994
styleGroup.push({
29932995
olStyle: olStyle,
2994-
color: color,
2996+
style: customSettings[key],
29952997
value: name
29962998
});
29972999
}, this);
29983000

29993001
return styleGroup;
30003002
}
30013003

3004+
/**
3005+
* 获取单值专题图自定义样式对象
3006+
* @param {*} style 图层上的样式
3007+
* @param {*} color 单值对应的颜色
3008+
* @param {*} featureType 要素类型
3009+
*/
3010+
getCustomSetting(style, color, featureType) {
3011+
let newProps = {};
3012+
if (featureType === "LINE") {
3013+
newProps.strokeColor = color;
3014+
} else {
3015+
newProps.fillColor = color;
3016+
}
3017+
let customSetting = Object.assign(style, newProps)
3018+
return customSetting;
3019+
}
3020+
30023021
/**
30033022
* @private
30043023
* @function ol.supermap.WebMap.prototype.createRangeLayer

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy