@@ -626,7 +626,7 @@ export class WebMap extends ol.Observable {
626
626
} ) . then ( function ( response ) {
627
627
return response . json ( )
628
628
} ) . then ( function ( data ) {
629
- if ( ! data . succeed === false ) {
629
+ if ( data . succeed === false ) {
630
630
//请求失败
631
631
layerAdded ++ ;
632
632
that . sendMapToUser ( layerAdded , len ) ;
@@ -927,14 +927,7 @@ export class WebMap extends ol.Observable {
927
927
* @param {array } features - 图层上的feature集合
928
928
*/
929
929
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 ;
938
931
if ( layerInfo . layerType === "VECTOR" ) {
939
932
if ( layerInfo . featureType === "POINT" ) {
940
933
if ( layerInfo . style . type === 'SYMBOL_POINT' ) {
@@ -949,23 +942,23 @@ export class WebMap extends ol.Observable {
949
942
} else if ( layerInfo . layerType === "UNIQUE" ) {
950
943
layer = this . createUniqueLayer ( layerInfo , features ) ;
951
944
} else if ( layerInfo . layerType === "RANGE" ) {
952
- layer = this . createRangeLayer ( layerInfo , features , allFeatures ) ;
945
+ layer = this . createRangeLayer ( layerInfo , features ) ;
953
946
} else if ( layerInfo . layerType === "HEAT" ) {
954
947
layer = this . createHeatLayer ( layerInfo , features ) ;
955
948
} else if ( layerInfo . layerType === "MARKER" ) {
956
949
layer = this . createMarkerLayer ( layerInfo , features )
957
950
}
958
951
let layerId = Util . newGuid ( 8 ) ;
959
- if ( layer && layerInfo . name ) {
960
- layer . setProperties ( {
952
+ if ( layer ) {
953
+ layerInfo . name && layer . setProperties ( {
961
954
name : layerInfo . name ,
962
955
layerId : layerId
963
956
} ) ;
957
+ layerInfo . opacity && layer . setOpacity ( layerInfo . opacity ) ;
958
+ layer . setVisible ( layerInfo . visible ) ;
964
959
}
965
960
layer && this . map . addLayer ( layer ) ;
966
961
layerInfo . layer = layer ;
967
- layerInfo . opacity && layer . setOpacity ( layerInfo . opacity ) ;
968
- layer . setVisible ( layerInfo . visible ) ;
969
962
layerInfo . layerId = layerId ;
970
963
if ( layerInfo . labelStyle && layerInfo . labelStyle . labelField ) {
971
964
//存在标签专题图
@@ -1181,7 +1174,7 @@ export class WebMap extends ol.Observable {
1181
1174
*/
1182
1175
addLabelLayer ( layerInfo , features ) {
1183
1176
let labelStyle = layerInfo . labelStyle ;
1184
- let style = this . getLabelStyle ( labelStyle ) ;
1177
+ let style = this . getLabelStyle ( labelStyle , layerInfo ) ;
1185
1178
let layer = new ol . layer . Vector ( {
1186
1179
declutter : true ,
1187
1180
styleOL : style ,
@@ -1211,13 +1204,22 @@ export class WebMap extends ol.Observable {
1211
1204
* @private
1212
1205
* @function ol.supermap.WebMap.prototype.getLabelStyle
1213
1206
* @description 获取标签样式
1214
- * @param {object } parameters - 样式参数
1207
+ * @param {object } parameters - 标签图层样式参数
1208
+ * @param {object } layerInfo - 图层样式参数
1215
1209
* @returns {ol.style.Style }
1216
1210
*/
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
+
1218
1220
return new ol . style . Style ( {
1219
1221
text : new ol . style . Text ( {
1220
- font : parameters . fontSize + " " + parameters . fontFamily ,
1222
+ font : "14px " + parameters . fontFamily ,
1221
1223
placement : 'point' ,
1222
1224
textAlign : 'center' ,
1223
1225
fill : new ol . style . Fill ( {
@@ -1227,7 +1229,7 @@ export class WebMap extends ol.Observable {
1227
1229
color : [ 255 , 255 , 255 , 0.7 ]
1228
1230
} ) ,
1229
1231
padding : [ 3 , 3 , 3 , 3 ] ,
1230
- offsetY : - 20
1232
+ offsetY : parameters . offsetY
1231
1233
} )
1232
1234
} ) ;
1233
1235
}
@@ -1335,14 +1337,14 @@ export class WebMap extends ol.Observable {
1335
1337
* @function ol.supermap.WebMap.prototype.createUniqueLayer
1336
1338
* @description 获取当前字段对应的最大值,用于计算权重
1337
1339
* @param {array } layerInfo - 图层信息
1338
- * @param {string } features - 所以feature的集合
1340
+ * @param {array } features - 所有feature结合
1339
1341
*/
1340
1342
createUniqueLayer ( layerInfo , features ) {
1341
1343
let styleSource = this . createUniqueSource ( layerInfo , features ) ;
1342
1344
let layer = new ol . layer . Vector ( {
1343
1345
styleSource : styleSource ,
1344
1346
source : new ol . source . Vector ( {
1345
- features : features ,
1347
+ features : layerInfo . filterCondition ? this . getFiterFeatures ( layerInfo . filterCondition , features ) : features ,
1346
1348
wrapX : false
1347
1349
} )
1348
1350
} ) ;
@@ -1444,17 +1446,16 @@ export class WebMap extends ol.Observable {
1444
1446
* @function ol.supermap.WebMap.prototype.createRangeLayer
1445
1447
* @description 创建分段图层
1446
1448
* @param {object } layerInfo- 图层信息
1447
- * @param {array } features - 通过过滤条件筛选过的feature结合
1448
- * @param {array } allFeatures- 所以的feature集合
1449
+ * @param {array } features - 所有feature结合
1449
1450
* @returns {ol.layer.Vector }
1450
1451
*/
1451
- createRangeLayer ( layerInfo , features , allFeatures ) {
1452
+ createRangeLayer ( layerInfo , features ) {
1452
1453
//这里获取styleGroup要用所以的feature
1453
- let styleSource = this . createRangeSource ( layerInfo , allFeatures || features ) ;
1454
+ let styleSource = this . createRangeSource ( layerInfo , features ) ;
1454
1455
let layer = new ol . layer . Vector ( {
1455
1456
styleSource : styleSource ,
1456
1457
source : new ol . source . Vector ( {
1457
- features : features ,
1458
+ features : layerInfo . filterCondition ? this . getFiterFeatures ( layerInfo . filterCondition , features ) : features ,
1458
1459
wrapX : false
1459
1460
} )
1460
1461
} ) ;
0 commit comments