Skip to content

Commit 2a9a479

Browse files
committed
【feature】1) webmap中标注feature,统一将属性存储在propertises上
(reviewed by chengl)
1 parent 8d602f0 commit 2a9a479

File tree

1 file changed

+30
-25
lines changed

1 file changed

+30
-25
lines changed

src/openlayers/mapping/WebMap.js

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1506,11 +1506,16 @@ export class WebMap extends ol.Observable {
15061506

15071507
// 标注图层特殊处理
15081508
let isMarker = false;
1509-
let featureInfo;
1509+
let attributes;
15101510
let useStyle;
15111511
if (allFeatures[i].dv_v5_markerInfo) {
1512-
featureInfo = allFeatures[i].dv_v5_markerInfo;
1513-
isMarker = true;
1512+
//因为优化代码之前,属性字段都存储在propertise上,markerInfo没有
1513+
attributes = Object.assign({}, allFeatures[i].dv_v5_markerInfo, feature.attributes);
1514+
if(attributes.lon) {
1515+
//标注图层不需要
1516+
delete attributes.lon;
1517+
delete attributes.lat;
1518+
}
15141519
}
15151520
if (allFeatures[i].dv_v5_markerStyle) {
15161521
useStyle = allFeatures[i].dv_v5_markerStyle;
@@ -1519,14 +1524,14 @@ export class WebMap extends ol.Observable {
15191524
let properties;
15201525
if (isMarker) {
15211526
properties = Object.assign({}, {
1522-
featureInfo: featureInfo
1527+
attributes
15231528
}, {
1524-
useStyle: useStyle
1525-
});
1529+
useStyle
1530+
});
15261531
//feature上添加图层的id,为了对应图层
15271532
feature.layerId = layerInfo.timeId;
15281533
//删除不需要的属性,因为这两个属性存储在properties上
1529-
delete feature.attributes.featureInfo;
1534+
delete feature.attributes.attributes;
15301535
delete feature.attributes.useStyle;
15311536
} else if (layerInfo.featureStyles) {
15321537
//V4 版本标注图层处理
@@ -1540,7 +1545,7 @@ export class WebMap extends ol.Observable {
15401545
//上传的图片,加上当前地址
15411546
imgUrl = `${Util.getIPortalUrl()}resources/markerIcon/${attr._smiportal_imgLinkUrl}`
15421547
}
1543-
featureInfo = {
1548+
attributes = {
15441549
dataViz_description: attr._smiportal_description,
15451550
dataViz_imgUrl: imgUrl,
15461551
dataViz_title: attr._smiportal_title,
@@ -1551,10 +1556,10 @@ export class WebMap extends ol.Observable {
15511556

15521557
useStyle = style;
15531558
properties = Object.assign({}, {
1554-
featureInfo: featureInfo
1559+
attributes
15551560
}, {
1556-
useStyle: useStyle
1557-
});
1561+
useStyle
1562+
});
15581563
delete attr._smiportal_description;
15591564
delete attr._smiportal_imgLinkUrl;
15601565
delete attr._smiportal_title;
@@ -2639,10 +2644,10 @@ export class WebMap extends ol.Observable {
26392644
//说明是文字的feature类型
26402645
geomType = "TEXT";
26412646
}
2642-
let featureInfo = this.setFeatureInfo(feature);
2647+
let attributes = this.setFeatureInfo(feature);
26432648
feature.setProperties({
26442649
useStyle: defaultStyle,
2645-
featureInfo: featureInfo
2650+
attributes
26462651
});
26472652
//标注图层的feature上需要存一个layerId,为了之后样式应用到图层上使用
26482653
// feature.layerId = timeId;
@@ -2666,22 +2671,22 @@ export class WebMap extends ol.Observable {
26662671
* @returns {*}
26672672
*/
26682673
setFeatureInfo(feature) {
2669-
let featureInfo;
2670-
if (feature.getProperties().featureInfo && feature.getProperties().featureInfo.dataViz_title !== undefined &&
2671-
feature.getProperties().featureInfo.dataViz_title != null) {
2672-
//有featureInfo信息就不需要再添加
2673-
featureInfo = feature.getProperties().featureInfo;
2674-
} else {
2675-
featureInfo = this.getDefaultAttribute();
2676-
}
2674+
let attributes = feature.getProperties().attributes,
2675+
defaultAttr = {
2676+
dataViz_title: '',
2677+
dataViz_description: '',
2678+
dataViz_imgUrl: '',
2679+
dataViz_url:''
2680+
},
2681+
newAttribute = Object.assign(defaultAttr, attributes);
26772682
let properties = feature.getProperties();
2678-
for (let key in featureInfo) {
2679-
if (properties[key]) {
2680-
featureInfo[key] = properties[key];
2683+
for(let key in newAttribute) {
2684+
if(properties[key]) {
2685+
newAttribute[key] = properties[key];
26812686
delete properties[key];
26822687
}
26832688
}
2684-
return featureInfo;
2689+
return newAttribute;
26852690
}
26862691

26872692
/**

0 commit comments

Comments
 (0)