@@ -489,8 +489,7 @@ export class WebMap extends Observable {
489
489
this . map . addLayer ( layer ) ;
490
490
491
491
if ( this . mapParams ) {
492
- let extent = [ mapInfo . extent . leftBottom . x , mapInfo . extent . leftBottom . y , mapInfo . extent . rightTop . x , mapInfo . extent . rightTop . y ] ;
493
- this . mapParams . extent = extent ;
492
+ this . mapParams . extent = baseLayer . extent ;
494
493
this . mapParams . projection = mapInfo . projection ;
495
494
}
496
495
if ( mapInfo . baseLayer && mapInfo . baseLayer . labelLayerVisible ) {
@@ -592,15 +591,17 @@ export class WebMap extends Observable {
592
591
}
593
592
} else {
594
593
if ( this . resolutionArray && this . resolutionArray . length > 0 ) {
595
- viewOptions = { zoom, center, projection, extent , resolutions : this . resolutionArray , maxZoom} ;
594
+ viewOptions = { zoom, center, projection, resolutions : this . resolutionArray , maxZoom} ;
596
595
} else {
597
- viewOptions = { zoom, center, projection, extent , maxResolution, minResolution, maxZoom} ;
596
+ viewOptions = { zoom, center, projection, maxResolution, minResolution, maxZoom} ;
598
597
this . getScales ( baseLayer ) ;
599
598
}
600
599
}
601
600
if ( ! [ '4' , '5' ] . includes ( Util . getOlVersion ( ) ) ) { // 兼容 ol 4,5,6
602
601
viewOptions . multiWorld = true ;
603
602
viewOptions . showFullExtent = true ;
603
+ viewOptions . enableRotation = false ;
604
+ viewOptions . constrainResolution = true ; //设置此参数,是因为需要显示整数级别。为了可视比例尺中包含当前比例尺
604
605
}
605
606
this . map . setView ( new View ( viewOptions ) ) ;
606
607
if ( options . visibleExtent ) {
@@ -884,12 +885,16 @@ export class WebMap extends Observable {
884
885
prjCoordSys :{ epsgCode : isBaseLayer ? layerInfo . projection . split ( ':' ) [ 1 ] : this . baseProjection . split ( ':' ) [ 1 ] }
885
886
} ;
886
887
if ( layerInfo . visibleScales && layerInfo . visibleScales . length > 0 ) {
887
- let result = this . getReslutionsFromScales ( layerInfo . visibleScales , 96 , layerInfo . coordUnit ) ;
888
+ let visibleResolutions = [ ] ;
889
+ for ( let i in layerInfo . visibleScales ) {
890
+ let resolution = Util . scaleToResolution ( layerInfo . visibleScales [ i ] , dpiConfig . default , layerInfo . coordUnit ) ;
891
+ visibleResolutions . push ( resolution ) ;
892
+ }
893
+ layerInfo . visibleResolutions = visibleResolutions ;
888
894
let tileGrid = new TileGrid ( {
889
895
extent : layerInfo . extent ,
890
- resolutions : result . res
896
+ resolutions : visibleResolutions
891
897
} ) ;
892
- layerInfo . visibleResolutions = result . res ;
893
898
options . tileGrid = tileGrid ;
894
899
} else {
895
900
options . extent = this . baseLayerExtent ;
@@ -1118,7 +1123,7 @@ export class WebMap extends Observable {
1118
1123
getWmtsInfo ( layerInfo , callback , mapInfo ) {
1119
1124
let that = this ;
1120
1125
let options = {
1121
- withCredentials : false ,
1126
+ withCredentials : true ,
1122
1127
withoutFormatSuffix : true
1123
1128
} ;
1124
1129
return FetchRequest . get ( that . getRequestUrl ( layerInfo . url ) , null , options ) . then ( function ( response ) {
@@ -1131,7 +1136,7 @@ export class WebMap extends Observable {
1131
1136
tileMatrixSet = content . TileMatrixSet ,
1132
1137
layers = content . Layer ,
1133
1138
layer , relSet = [ ] ,
1134
- idx , layerFormat ;
1139
+ idx , layerFormat , style = 'default' ;
1135
1140
1136
1141
for ( let n = 0 ; n < layers . length ; n ++ ) {
1137
1142
if ( layers [ n ] . Title === layerInfo . name ) {
@@ -1143,6 +1148,11 @@ export class WebMap extends Observable {
1143
1148
break ;
1144
1149
}
1145
1150
}
1151
+ layer && layer . Style && layer . Style . forEach ( value => {
1152
+ if ( value . isDefault ) {
1153
+ style = value . Identifier ;
1154
+ }
1155
+ } ) ;
1146
1156
let scales = [ ] , matrixIds = [ ] ;
1147
1157
for ( let i = 0 ; i < tileMatrixSet . length ; i ++ ) {
1148
1158
if ( tileMatrixSet [ i ] . Identifier === layerInfo . tileMatrixSet ) {
@@ -1164,18 +1174,17 @@ export class WebMap extends Observable {
1164
1174
} else {
1165
1175
extent = olProj . get ( that . baseProjection ) . getExtent ( )
1166
1176
}
1167
- const isKvp = layerInfo . requestEncoding === 'KVP' ;
1177
+ const isKvp = ! layerInfo . requestEncoding || layerInfo . requestEncoding === 'KVP' ;
1168
1178
layerInfo . tileUrl = that . getTileUrl ( capabilities . OperationsMetadata . GetTile . DCP . HTTP . Get , isKvp , layerInfo . layer , layerInfo . tileMatrixSet ) ;
1169
1179
//将需要的参数补上
1170
1180
layerInfo . dpi = 90.7 ;
1171
1181
layerInfo . extent = extent ;
1172
- layerInfo . format = "image/png" ;
1173
1182
layerInfo . matrixSet = matrixSet ;
1174
1183
layerInfo . name = name ;
1175
1184
layerInfo . orginEpsgCode = layerInfo . projection ;
1176
1185
layerInfo . overLayer = true ;
1177
1186
layerInfo . scales = scales ;
1178
- layerInfo . style = "default" ;
1187
+ layerInfo . style = style ;
1179
1188
layerInfo . title = name ;
1180
1189
layerInfo . unit = "m" ;
1181
1190
layerInfo . layerFormat = layerFormat ;
@@ -1231,6 +1240,7 @@ export class WebMap extends Observable {
1231
1240
url : layerInfo . tileUrl || layerInfo . url ,
1232
1241
layer : layerInfo . layer ,
1233
1242
format : layerInfo . layerFormat ,
1243
+ style : layerInfo . style ,
1234
1244
matrixSet : layerInfo . tileMatrixSet ,
1235
1245
requestEncoding : layerInfo . requestEncoding || 'KVP' ,
1236
1246
tileGrid : this . getWMTSTileGrid ( extent , layerInfo . scales , unit , layerInfo . dpi , layerInfo . origin , layerInfo . matrixIds ) ,
@@ -1280,8 +1290,10 @@ export class WebMap extends Observable {
1280
1290
//给个默认的
1281
1291
if ( Util . isArray ( scales ) ) {
1282
1292
scales && scales . forEach ( function ( scale , idx ) {
1283
- matrixIds . push ( idx ) ;
1284
- res . push ( this . getResolutionFromScale ( scale , dpi , unit , datumAxis ) ) ;
1293
+ if ( scale > 1.0 ) {
1294
+ matrixIds . push ( idx ) ;
1295
+ res . push ( this . getResolutionFromScale ( scale , dpi , unit , datumAxis ) ) ;
1296
+ }
1285
1297
} , this ) ;
1286
1298
} else {
1287
1299
let tileMatrixSet = scales [ 'TileMatrix' ] ;
@@ -1306,7 +1318,7 @@ export class WebMap extends Observable {
1306
1318
* @param {number } datumAxis
1307
1319
* @returns {{res: Array, matrixIds: Array} }
1308
1320
*/
1309
- getResolutionFromScale ( scale , dpi , unit , datumAxis ) {
1321
+ getResolutionFromScale ( scale , dpi = dpiConfig . default , unit , datumAxis ) {
1310
1322
//radio = 10000;
1311
1323
let res ;
1312
1324
scale = + scale ;
0 commit comments