@@ -27,7 +27,7 @@ import SampleDataInfo from './webmap/config/SampleDataInfo.json';// eslint-disab
27
27
import GeoJSON from 'ol/format/GeoJSON' ;
28
28
import MVT from 'ol/format/MVT' ;
29
29
import Observable from 'ol/Observable' ;
30
- import Map from 'ol/Map' ;
30
+ import olMap from 'ol/Map' ;
31
31
import View from 'ol/View' ;
32
32
import * as olProj from 'ol/proj' ;
33
33
import * as olProj4 from 'ol/proj/proj4' ;
@@ -216,7 +216,7 @@ export class WebMap extends Observable {
216
216
overlays = mapSetting . overlays ;
217
217
controls = mapSetting . controls ;
218
218
}
219
- this . map = new Map ( {
219
+ this . map = new olMap ( {
220
220
interactions : interactions ,
221
221
overlays : overlays ,
222
222
controls : controls ,
@@ -1200,18 +1200,27 @@ export class WebMap extends Observable {
1200
1200
* @description 获取(Supermap RestMap)的图层参数。
1201
1201
* @param {Object } layerInfo - 图层信息。
1202
1202
* @param {function } callback - 获得tile图层参数执行的回调函数
1203
+ * @param {function } failedCallback - 失败回调函数
1203
1204
*/
1204
- async getTileLayerExtent ( layerInfo , callback ) {
1205
+ async getTileLayerExtent ( layerInfo , callback , failedCallback ) {
1205
1206
let that = this ;
1206
1207
// 默认使用动态投影方式请求数据
1207
1208
let dynamicLayerInfo = await that . getTileLayerExtentInfo ( layerInfo )
1208
- if ( dynamicLayerInfo ) {
1209
- Object . assign ( layerInfo , dynamicLayerInfo ) ;
1210
- callback ( layerInfo ) ;
1209
+ if ( dynamicLayerInfo . succeed === false ) {
1210
+ if ( dynamicLayerInfo . error . code === 400 ) {
1211
+ // dynamicLayerInfo.error.code === 400 不支持动态投影,请求restmap原始信息
1212
+ let originLayerInfo = await that . getTileLayerExtentInfo ( layerInfo , false ) ;
1213
+ if ( originLayerInfo . succeed === false ) {
1214
+ failedCallback ( ) ;
1215
+ } else {
1216
+ Object . assign ( layerInfo , originLayerInfo ) ;
1217
+ callback ( layerInfo ) ;
1218
+ }
1219
+ } else {
1220
+ failedCallback ( ) ;
1221
+ }
1211
1222
} else {
1212
- // 不支持动态投影,请求restmap原始信息
1213
- let originLayerInfo = await that . getTileLayerExtentInfo ( layerInfo , false ) ;
1214
- Object . assign ( layerInfo , originLayerInfo ) ;
1223
+ Object . assign ( layerInfo , dynamicLayerInfo ) ;
1215
1224
callback ( layerInfo ) ;
1216
1225
}
1217
1226
}
@@ -1220,7 +1229,7 @@ export class WebMap extends Observable {
1220
1229
* @private
1221
1230
* @function ol.supermap.WebMap.prototype.getTileLayerExtentInfo
1222
1231
* @description 获取rest map的图层参数。
1223
- * @param {String } url - 图层url 。
1232
+ * @param {Object } layerInfo - 图层信息 。
1224
1233
* @param {Boolean } isDynamic - 是否请求动态投影信息
1225
1234
*/
1226
1235
getTileLayerExtentInfo ( layerInfo , isDynamic = true ) {
@@ -1249,7 +1258,7 @@ export class WebMap extends Observable {
1249
1258
return response . json ( ) ;
1250
1259
} ) . then ( async ( result ) => {
1251
1260
if ( result . succeed === false ) {
1252
- return null
1261
+ return result
1253
1262
}
1254
1263
// let isSupportWebp = await that.isSupportWebp(layerInfo.url, token);
1255
1264
return {
@@ -1261,7 +1270,10 @@ export class WebMap extends Observable {
1261
1270
format : 'png'
1262
1271
}
1263
1272
} ) . catch ( ( error ) => {
1264
- throw error ;
1273
+ return {
1274
+ succeed : false ,
1275
+ error : error
1276
+ }
1265
1277
} ) ;
1266
1278
}
1267
1279
@@ -1688,6 +1700,10 @@ export class WebMap extends Observable {
1688
1700
that . map . addLayer ( that . createBaseLayer ( layerInfo , layerIndex ) ) ;
1689
1701
that . layerAdded ++ ;
1690
1702
that . sendMapToUser ( len ) ;
1703
+ } , function ( e ) {
1704
+ that . layerAdded ++ ;
1705
+ that . sendMapToUser ( len ) ;
1706
+ that . errorCallback && that . errorCallback ( e , 'getLayerFaild' , that . map ) ;
1691
1707
} )
1692
1708
} else if ( layer . layerType === 'SUPERMAP_REST' ||
1693
1709
layer . layerType === "WMS" ||
0 commit comments