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