@@ -289,8 +289,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
289289 cameraCenterDistance : number ;
290290 //@internal
291291 _limitMaxExtenting : boolean ;
292- //@internal
293- _terrainLayer : any ;
294292 options : MapOptionsType ;
295293 static VERSION : string ;
296294 JSON_VERSION : '1.0' ;
@@ -1283,7 +1281,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
12831281
12841282 this . _baseLayer = baseLayer ;
12851283 baseLayer . _bindMap ( this , - 1 ) ;
1286- this . _findTerrainLayer ( ) ;
12871284
12881285 function onbaseLayerload ( ) {
12891286 /**
@@ -1396,9 +1393,8 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
13961393 this . _layerCache = { } ;
13971394 }
13981395 const mapLayers = this . _layers ;
1399- let hasTerrainLayer = false ;
14001396 for ( let i = 0 , len = layers . length ; i < len ; i ++ ) {
1401- const layer = layers [ i ] as any ;
1397+ const layer = layers [ i ] ;
14021398 const id = layer . getId ( ) ;
14031399 if ( isNil ( id ) ) {
14041400 throw new Error ( 'Invalid id for the layer: ' + id ) ;
@@ -1409,9 +1405,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
14091405 if ( this . _layerCache [ id ] ) {
14101406 throw new Error ( 'Duplicate layer id in the map: ' + id ) ;
14111407 }
1412- if ( layer . queryTerrainAtPoint && layer . getTerrainLayer && layer . getTerrainLayer ( ) ) {
1413- hasTerrainLayer = true ;
1414- }
14151408 this . _layerCache [ id ] = layer ;
14161409 layer . _bindMap ( this ) ;
14171410 mapLayers . push ( layer ) ;
@@ -1421,9 +1414,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
14211414 }
14221415
14231416 this . _sortLayersByZIndex ( ) ;
1424- if ( hasTerrainLayer ) {
1425- this . _findTerrainLayer ( ) ;
1426- }
14271417
14281418 /**
14291419 * addlayer event, fired when adding layers.
@@ -1454,7 +1444,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
14541444 return this . removeLayer ( [ layers ] ) ;
14551445 }
14561446 const removed = [ ] ;
1457- let terrainRemoved = false ;
14581447 for ( let i = 0 , len = layers . length ; i < len ; i ++ ) {
14591448 let layer = layers [ i ] ;
14601449 if ( ! ( layer instanceof Layer ) ) {
@@ -1467,9 +1456,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
14671456 if ( ! map || ( map as any ) !== this ) {
14681457 continue ;
14691458 }
1470- if ( layer === this . _terrainLayer ) {
1471- terrainRemoved = true ;
1472- }
14731459 removed . push ( layer ) ;
14741460 this . _removeLayer ( layer , this . _layers ) ;
14751461 if ( this . _loaded ) {
@@ -1480,9 +1466,6 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
14801466 delete this . _layerCache [ id ] ;
14811467 }
14821468 }
1483- if ( terrainRemoved ) {
1484- this . _findTerrainLayer ( ) ;
1485- }
14861469 if ( removed . length > 0 ) {
14871470 const renderer = this . getRenderer ( ) ;
14881471 if ( renderer ) {
@@ -1513,21 +1496,19 @@ export class Map extends Handlerable(Eventable(Renderable(Class))) {
15131496 return this ;
15141497 }
15151498
1499+ //@internal
15161500 _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 ;
15221503 }
15231504 const layers = this . _getLayers ( ) || [ ] ;
15241505 for ( let i = 0 ; i < layers . length ; i ++ ) {
15251506 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 ;
15291509 }
15301510 }
1511+ return null ;
15311512 }
15321513
15331514 /**
@@ -2956,3 +2937,7 @@ export type MapIdentifyOptionsType = {
29562937export type MapContainerType = string | HTMLDivElement | HTMLCanvasElement | { [ key : string ] : any } ;
29572938
29582939export 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