@@ -289,8 +289,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
289
289
cameraCenterDistance : number ;
290
290
//@internal
291
291
_limitMaxExtenting : boolean ;
292
- //@internal
293
- _terrainLayer : any ;
294
292
options : MapOptionsType ;
295
293
static VERSION : string ;
296
294
JSON_VERSION : '1.0' ;
@@ -1283,7 +1281,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1283
1281
1284
1282
this . _baseLayer = baseLayer ;
1285
1283
baseLayer . _bindMap ( this , - 1 ) ;
1286
- this . _findTerrainLayer ( ) ;
1287
1284
1288
1285
function onbaseLayerload ( ) {
1289
1286
/**
@@ -1396,9 +1393,8 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1396
1393
this . _layerCache = { } ;
1397
1394
}
1398
1395
const mapLayers = this . _layers ;
1399
- let hasTerrainLayer = false ;
1400
1396
for ( let i = 0 , len = layers . length ; i < len ; i ++ ) {
1401
- const layer = layers [ i ] as any ;
1397
+ const layer = layers [ i ] ;
1402
1398
const id = layer . getId ( ) ;
1403
1399
if ( isNil ( id ) ) {
1404
1400
throw new Error ( 'Invalid id for the layer: ' + id ) ;
@@ -1409,9 +1405,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1409
1405
if ( this . _layerCache [ id ] ) {
1410
1406
throw new Error ( 'Duplicate layer id in the map: ' + id ) ;
1411
1407
}
1412
- if ( layer . queryTerrainAtPoint && layer . getTerrainLayer && layer . getTerrainLayer ( ) ) {
1413
- hasTerrainLayer = true ;
1414
- }
1415
1408
this . _layerCache [ id ] = layer ;
1416
1409
layer . _bindMap ( this ) ;
1417
1410
mapLayers . push ( layer ) ;
@@ -1421,9 +1414,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1421
1414
}
1422
1415
1423
1416
this . _sortLayersByZIndex ( ) ;
1424
- if ( hasTerrainLayer ) {
1425
- this . _findTerrainLayer ( ) ;
1426
- }
1427
1417
1428
1418
/**
1429
1419
* addlayer event, fired when adding layers.
@@ -1454,7 +1444,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1454
1444
return this . removeLayer ( [ layers ] ) ;
1455
1445
}
1456
1446
const removed = [ ] ;
1457
- let terrainRemoved = false ;
1458
1447
for ( let i = 0 , len = layers . length ; i < len ; i ++ ) {
1459
1448
let layer = layers [ i ] ;
1460
1449
if ( ! ( layer instanceof Layer ) ) {
@@ -1467,9 +1456,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1467
1456
if ( ! map || ( map as any ) !== this ) {
1468
1457
continue ;
1469
1458
}
1470
- if ( layer === this . _terrainLayer ) {
1471
- terrainRemoved = true ;
1472
- }
1473
1459
removed . push ( layer ) ;
1474
1460
this . _removeLayer ( layer , this . _layers ) ;
1475
1461
if ( this . _loaded ) {
@@ -1480,9 +1466,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1480
1466
delete this . _layerCache [ id ] ;
1481
1467
}
1482
1468
}
1483
- if ( terrainRemoved ) {
1484
- this . _findTerrainLayer ( ) ;
1485
- }
1486
1469
if ( removed . length > 0 ) {
1487
1470
const renderer = this . getRenderer ( ) ;
1488
1471
if ( renderer ) {
@@ -1513,21 +1496,19 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
1513
1496
return this ;
1514
1497
}
1515
1498
1499
+ //@internal
1516
1500
_findTerrainLayer ( ) {
1517
- this . _terrainLayer = null ;
1518
- const baseLayer = this . _baseLayer as any ;
1519
- if ( baseLayer && baseLayer . queryTerrainAtPoint && baseLayer . getTerrainLayer && baseLayer . getTerrainLayer ( ) ) {
1520
- this . _terrainLayer = baseLayer ;
1521
- return ;
1501
+ if ( isTerrainLayer ( this . _baseLayer ) ) {
1502
+ return this . _baseLayer ;
1522
1503
}
1523
1504
const layers = this . _getLayers ( ) || [ ] ;
1524
1505
for ( let i = 0 ; i < layers . length ; i ++ ) {
1525
1506
const layer = layers [ i ] ;
1526
- if ( layer && layer . queryTerrainAtPoint && layer . getTerrainLayer && layer . getTerrainLayer ( ) ) {
1527
- this . _terrainLayer = layer ;
1528
- break ;
1507
+ if ( isTerrainLayer ( layer ) ) {
1508
+ return layer ;
1529
1509
}
1530
1510
}
1511
+ return null ;
1531
1512
}
1532
1513
1533
1514
/**
@@ -2956,3 +2937,7 @@ export type MapIdentifyOptionsType = {
2956
2937
export type MapContainerType = string | HTMLDivElement | HTMLCanvasElement | { [ key : string ] : any } ;
2957
2938
2958
2939
export type PanelDom = ( HTMLDivElement | HTMLElement ) & { layerDOM : HTMLElement ; uiDOM : HTMLElement ; }
2940
+
2941
+ function isTerrainLayer ( layer : any ) : boolean {
2942
+ return layer && layer . queryTerrainAtPoint && layer . getTerrainLayer && layer . getTerrainLayer ( ) ;
2943
+ }
0 commit comments