@@ -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