@@ -27,7 +27,7 @@ import SampleDataInfo from './webmap/config/SampleDataInfo.json';// eslint-disab
2727import GeoJSON from 'ol/format/GeoJSON' ;
2828import MVT from 'ol/format/MVT' ;
2929import Observable from 'ol/Observable' ;
30- import Map from 'ol/Map' ;
30+ import olMap from 'ol/Map' ;
3131import View from 'ol/View' ;
3232import * as olProj from 'ol/proj' ;
3333import * as olProj4 from 'ol/proj/proj4' ;
@@ -216,7 +216,7 @@ export class WebMap extends Observable {
216216 overlays = mapSetting . overlays ;
217217 controls = mapSetting . controls ;
218218 }
219- this . map = new Map ( {
219+ this . map = new olMap ( {
220220 interactions : interactions ,
221221 overlays : overlays ,
222222 controls : controls ,
@@ -1200,18 +1200,27 @@ export class WebMap extends Observable {
12001200 * @description 获取(Supermap RestMap)的图层参数。
12011201 * @param {Object } layerInfo - 图层信息。
12021202 * @param {function } callback - 获得tile图层参数执行的回调函数
1203+ * @param {function } failedCallback - 失败回调函数
12031204 */
1204- async getTileLayerExtent ( layerInfo , callback ) {
1205+ async getTileLayerExtent ( layerInfo , callback , failedCallback ) {
12051206 let that = this ;
12061207 // 默认使用动态投影方式请求数据
12071208 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+ }
12111222 } else {
1212- // 不支持动态投影,请求restmap原始信息
1213- let originLayerInfo = await that . getTileLayerExtentInfo ( layerInfo , false ) ;
1214- Object . assign ( layerInfo , originLayerInfo ) ;
1223+ Object . assign ( layerInfo , dynamicLayerInfo ) ;
12151224 callback ( layerInfo ) ;
12161225 }
12171226 }
@@ -1220,7 +1229,7 @@ export class WebMap extends Observable {
12201229 * @private
12211230 * @function ol.supermap.WebMap.prototype.getTileLayerExtentInfo
12221231 * @description 获取rest map的图层参数。
1223- * @param {String } url - 图层url 。
1232+ * @param {Object } layerInfo - 图层信息 。
12241233 * @param {Boolean } isDynamic - 是否请求动态投影信息
12251234 */
12261235 getTileLayerExtentInfo ( layerInfo , isDynamic = true ) {
@@ -1249,7 +1258,7 @@ export class WebMap extends Observable {
12491258 return response . json ( ) ;
12501259 } ) . then ( async ( result ) => {
12511260 if ( result . succeed === false ) {
1252- return null
1261+ return result
12531262 }
12541263 // let isSupportWebp = await that.isSupportWebp(layerInfo.url, token);
12551264 return {
@@ -1261,7 +1270,10 @@ export class WebMap extends Observable {
12611270 format : 'png'
12621271 }
12631272 } ) . catch ( ( error ) => {
1264- throw error ;
1273+ return {
1274+ succeed : false ,
1275+ error : error
1276+ }
12651277 } ) ;
12661278 }
12671279
@@ -1688,6 +1700,10 @@ export class WebMap extends Observable {
16881700 that . map . addLayer ( that . createBaseLayer ( layerInfo , layerIndex ) ) ;
16891701 that . layerAdded ++ ;
16901702 that . sendMapToUser ( len ) ;
1703+ } , function ( e ) {
1704+ that . layerAdded ++ ;
1705+ that . sendMapToUser ( len ) ;
1706+ that . errorCallback && that . errorCallback ( e , 'getLayerFaild' , that . map ) ;
16911707 } )
16921708 } else if ( layer . layerType === 'SUPERMAP_REST' ||
16931709 layer . layerType === "WMS" ||
0 commit comments