Skip to content

Commit 547cf8e

Browse files
committed
【update】1)webmap修改标签图层,样式问题
2)分段专题图和单值专题图统一过滤逻辑 (reviewed by songym)
1 parent 5c4f8f3 commit 547cf8e

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

src/openlayers/core/StyleUtils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ export class StyleUtils {
424424
return [];
425425
}
426426
var w = style.strokeWidth * widthFactor;
427-
var str = style.strokeDashstyle;
427+
var str = style.strokeDashstyle || style.lineDash;
428428
switch (str) {
429429
case 'solid':
430430
return [];
@@ -644,7 +644,7 @@ export class StyleUtils {
644644
newStroke = new ol.style.Stroke({
645645
width: strokeWidth || ZERO,
646646
color: strokeColorArray,
647-
lineCap: lineCap || 'round', //todo 缺少lineCap
647+
lineCap: lineCap || 'round',
648648
lineDash: this.dashStyle(style, 1)
649649
});
650650
olStyle.setStroke(newStroke);

src/openlayers/mapping/WebMap.js

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ export class WebMap extends ol.Observable {
626626
}).then(function (response) {
627627
return response.json()
628628
}).then(function (data) {
629-
if(!data.succeed === false) {
629+
if(data.succeed === false) {
630630
//请求失败
631631
layerAdded++;
632632
that.sendMapToUser(layerAdded, len);
@@ -927,14 +927,7 @@ export class WebMap extends ol.Observable {
927927
* @param {array} features - 图层上的feature集合
928928
*/
929929
addLayer(layerInfo, features) {
930-
let layer, allFeatures;
931-
if (layerInfo.style && layerInfo.filterCondition) {
932-
if (layerInfo.layerType === "RANGE") {
933-
allFeatures = features;
934-
}
935-
//将feature根据过滤条件进行过滤, 分段专题图因为要计算styleGroup所以暂时不过滤
936-
features = this.getFiterFeatures(layerInfo.filterCondition, features);
937-
}
930+
let layer;
938931
if (layerInfo.layerType === "VECTOR") {
939932
if (layerInfo.featureType === "POINT") {
940933
if (layerInfo.style.type === 'SYMBOL_POINT') {
@@ -949,23 +942,23 @@ export class WebMap extends ol.Observable {
949942
} else if (layerInfo.layerType === "UNIQUE") {
950943
layer = this.createUniqueLayer(layerInfo, features);
951944
} else if (layerInfo.layerType === "RANGE") {
952-
layer = this.createRangeLayer(layerInfo, features, allFeatures);
945+
layer = this.createRangeLayer(layerInfo, features);
953946
} else if (layerInfo.layerType === "HEAT") {
954947
layer = this.createHeatLayer(layerInfo, features);
955948
} else if (layerInfo.layerType === "MARKER") {
956949
layer = this.createMarkerLayer(layerInfo, features)
957950
}
958951
let layerId = Util.newGuid(8);
959-
if (layer && layerInfo.name) {
960-
layer.setProperties({
952+
if (layer) {
953+
layerInfo.name && layer.setProperties({
961954
name: layerInfo.name,
962955
layerId: layerId
963956
});
957+
layerInfo.opacity && layer.setOpacity(layerInfo.opacity);
958+
layer.setVisible(layerInfo.visible);
964959
}
965960
layer && this.map.addLayer(layer);
966961
layerInfo.layer = layer;
967-
layerInfo.opacity && layer.setOpacity(layerInfo.opacity);
968-
layer.setVisible(layerInfo.visible);
969962
layerInfo.layerId = layerId;
970963
if (layerInfo.labelStyle && layerInfo.labelStyle.labelField) {
971964
//存在标签专题图
@@ -1181,7 +1174,7 @@ export class WebMap extends ol.Observable {
11811174
*/
11821175
addLabelLayer(layerInfo, features) {
11831176
let labelStyle = layerInfo.labelStyle;
1184-
let style = this.getLabelStyle(labelStyle);
1177+
let style = this.getLabelStyle(labelStyle, layerInfo);
11851178
let layer = new ol.layer.Vector({
11861179
declutter: true,
11871180
styleOL: style,
@@ -1211,13 +1204,22 @@ export class WebMap extends ol.Observable {
12111204
* @private
12121205
* @function ol.supermap.WebMap.prototype.getLabelStyle
12131206
* @description 获取标签样式
1214-
* @param {object} parameters - 样式参数
1207+
* @param {object} parameters - 标签图层样式参数
1208+
* @param {object} layerInfo - 图层样式参数
12151209
* @returns {ol.style.Style}
12161210
*/
1217-
getLabelStyle(parameters) {
1211+
getLabelStyle(parameters, layerInfo) {
1212+
let radius = layerInfo.style.radius || 0;
1213+
let strokeWidth = layerInfo.style.strokeWidth || 0;
1214+
let offsetY = -1.8 * radius - strokeWidth;
1215+
if (offsetY > -20) {
1216+
offsetY = -20;
1217+
}
1218+
parameters.offsetY = offsetY;
1219+
12181220
return new ol.style.Style({
12191221
text: new ol.style.Text({
1220-
font: parameters.fontSize + " " + parameters.fontFamily,
1222+
font: "14px " + parameters.fontFamily,
12211223
placement: 'point',
12221224
textAlign: 'center',
12231225
fill: new ol.style.Fill({
@@ -1227,7 +1229,7 @@ export class WebMap extends ol.Observable {
12271229
color: [255, 255, 255, 0.7]
12281230
}),
12291231
padding: [3, 3, 3, 3],
1230-
offsetY: -20
1232+
offsetY: parameters.offsetY
12311233
})
12321234
});
12331235
}
@@ -1335,14 +1337,14 @@ export class WebMap extends ol.Observable {
13351337
* @function ol.supermap.WebMap.prototype.createUniqueLayer
13361338
* @description 获取当前字段对应的最大值,用于计算权重
13371339
* @param {array} layerInfo - 图层信息
1338-
* @param {string} features - 所以feature的集合
1340+
* @param {array} features - 所有feature结合
13391341
*/
13401342
createUniqueLayer(layerInfo, features) {
13411343
let styleSource = this.createUniqueSource(layerInfo, features);
13421344
let layer = new ol.layer.Vector({
13431345
styleSource: styleSource,
13441346
source: new ol.source.Vector({
1345-
features: features,
1347+
features: layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features,
13461348
wrapX: false
13471349
})
13481350
});
@@ -1444,17 +1446,16 @@ export class WebMap extends ol.Observable {
14441446
* @function ol.supermap.WebMap.prototype.createRangeLayer
14451447
* @description 创建分段图层
14461448
* @param {object} layerInfo- 图层信息
1447-
* @param {array} features - 通过过滤条件筛选过的feature结合
1448-
* @param {array} allFeatures- 所以的feature集合
1449+
* @param {array} features - 所有feature结合
14491450
* @returns {ol.layer.Vector}
14501451
*/
1451-
createRangeLayer(layerInfo, features, allFeatures) {
1452+
createRangeLayer(layerInfo, features) {
14521453
//这里获取styleGroup要用所以的feature
1453-
let styleSource = this.createRangeSource(layerInfo, allFeatures || features);
1454+
let styleSource = this.createRangeSource(layerInfo, features);
14541455
let layer = new ol.layer.Vector({
14551456
styleSource: styleSource,
14561457
source: new ol.source.Vector({
1457-
features: features,
1458+
features: layerInfo.filterCondition ? this.getFiterFeatures(layerInfo.filterCondition, features) : features,
14581459
wrapX: false
14591460
})
14601461
});

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