@@ -4,9 +4,9 @@ import { CesiumZondy } from '../core/Base';
44 * @author 基础平台研发中心·冯桂英
55 * @class BaseLayer
66 * @category BaseLayer
7- * @classdesc BaseLayer
7+ * @classdesc BaseLayer 数据服务基类
88 * @description 图层管理基类,实现图层公共方法
9- * @param option.viewer = viewer 场景视图
9+ * @param option.viewer 场景视图
1010 */
1111export default class BaseLayer {
1212 constructor ( option ) {
@@ -35,7 +35,7 @@ export default class BaseLayer {
3535 }
3636
3737 /**
38- * 场景
38+ * 场景
3939 * @memberof BaseLayer.prototype
4040 * @type {Scene }
4141 * @readonly
@@ -49,58 +49,70 @@ export default class BaseLayer {
4949 * @param {Object } layer 图层对象
5050 */
5151 zoomToM3dLayer ( layer ) {
52- let boundingSphere = layer . boundingSphere ;
53- this . viewer . camera . viewBoundingSphere (
54- boundingSphere ,
55- new Cesium . HeadingPitchRange ( 0.0 , - 0.5 , boundingSphere . radius )
56- ) ;
52+ const { boundingSphere } = layer ;
53+ this . viewer . camera . viewBoundingSphere ( boundingSphere , new Cesium . HeadingPitchRange ( 0.0 , - 0.5 , boundingSphere . radius ) ) ;
5754 this . viewer . camera . lookAtTransform ( Cesium . Matrix4 . IDENTITY ) ;
5855 }
5956
60- /***
57+ /**
6158 * 移除m3d 图层
6259 */
6360 removeM3dLayer ( layer ) {
6461 this . viewer . scene . primitives . remove ( layer ) ;
6562 }
6663
6764 /**
68- * 移除添加的所有m3d文档,layers为图层数组
65+ * 移除添加的文档
6966 */
7067 removeDocs ( layers ) {
7168 if ( ! Cesium . defined ( layers ) ) {
7269 return ;
7370 }
74- for ( var i in layers ) {
71+ for ( let i = 0 ; i < layers . length ; i += 1 ) {
7572 this . viewer . scene . primitives . remove ( layers [ i ] ) ;
7673 }
77- return ;
74+ }
75+
76+ /**
77+ * 通用添加影像图层
78+ * @param {Imagelayer } google等图层
79+ * @returns {Imagelayer } 返回瓦片层
80+ */
81+ addImageLayer ( imagelayer ) {
82+ const imagelayers = this . viewer . imageryLayers ;
83+ if ( imagelayers !== null && imagelayers !== undefined ) {
84+ if ( ! imagelayers . contains ( imagelayer ) ) {
85+ return imagelayers . addImageryProvider ( imagelayer ) ;
86+ }
87+ }
88+ return undefined ;
7889 }
7990
8091 /**
8192 * 添加全球网格信息
82- * @returns 网格图层
93+ * @returns { ImageryLayer } 网格图层
8394 */
8495 addGridInfo ( ) {
8596 if ( undefined === this . _tileGridLayer ) {
86- let tileGridLayer = new Cesium . TileCoordinatesImageryProvider ( {
97+ const tileGridLayer = new Cesium . TileCoordinatesImageryProvider ( {
8798 showLonlats : true
8899 } ) ;
89- let imagelayers = this . viewer . imageryLayers ;
100+ const imagelayers = this . viewer . imageryLayers ;
90101 if ( imagelayers !== null && imagelayers !== undefined ) {
91102 if ( ! imagelayers . contains ( tileGridLayer ) ) {
92103 return imagelayers . addImageryProvider ( tileGridLayer ) ;
93104 }
94105 }
95106 }
107+ return undefined ;
96108 }
97109
98110 /**
99111 * 移除全球网格信息
100- * @param {Object } gridlayers 网格图层
112+ * @param {ImageryLayer } gridlayers 网格图层
101113 */
102114 removeGridInfo ( gridlayers ) {
103- let imagelayers = this . viewer . imageryLayers ;
115+ const imagelayers = this . viewer . imageryLayers ;
104116 if ( imagelayers !== null && imagelayers !== undefined ) {
105117 if ( imagelayers . contains ( gridlayers ) ) {
106118 imagelayers . remove ( gridlayers , true ) ;
@@ -110,14 +122,14 @@ export default class BaseLayer {
110122
111123 /**
112124 * 通用删除影像图层
113- * @param { imagelayer } google等图层,其为addImageryProvider返回的值
114- * @param { boolean } isdestroy, 是否销毁图层 在图层需要频繁切换的情况下,isdestroy最好取false
125+ * @param { Imagelayer } google等图层其为addImageryProvider返回的值
126+ * @param { Boolean } isdestroy 是否销毁图层 在图层需要频繁切换的情况下,isdestroy最好取false
115127 * @example
116128 * let tilelayer = tile.appendGoogleMap({ptype:'m@207000000' });
117129 * tile.removeImageLayer(tilelayer, true);
118130 */
119131 removeImageLayer ( imagelayer , isdestroy ) {
120- let imagelayers = this . viewer . imageryLayers ;
132+ const imagelayers = this . viewer . imageryLayers ;
121133 if ( imagelayers !== null && imagelayers !== undefined ) {
122134 if ( imagelayers . contains ( imagelayer ) ) {
123135 imagelayers . remove ( imagelayer , isdestroy ) ;
@@ -127,14 +139,52 @@ export default class BaseLayer {
127139
128140 /**
129141 * 清空影像图层,包括地球表面
130- * @param { boolean } isdestroy, 是否销毁图层
142+ * @param { Boolean } isdestroy 是否销毁图层
131143 */
132144 removeAllImageLayers ( isdestroy ) {
133- var imagelayers = this . viewer . imageryLayers ;
145+ const imagelayers = this . viewer . imageryLayers ;
134146 if ( imagelayers !== null && imagelayers !== undefined ) {
135147 imagelayers . removeAll ( isdestroy ) ;
136148 }
137149 }
150+
151+ /**
152+ * 移除实体
153+ * @param {Entity } entity 实体对象
154+ */
155+ removeEntity ( entity ) {
156+ this . viewer . entities . remove ( entity ) ;
157+ }
158+
159+ /**
160+ * 移除所有实体
161+ */
162+ removeAllEntities ( ) {
163+ this . viewer . entities . removeAll ( ) ;
164+ }
165+
166+ /**
167+ * 移除primitive实体
168+ * @param {Primitive } 移除对象
169+ */
170+ removePrimitive ( primitive ) {
171+ this . scene . primitives . remove ( primitive ) ;
172+ }
173+
174+ /**
175+ * 移除全部实体
176+ */
177+ removeAllPrimitives ( ) {
178+ this . scene . primitives . removeAll ( ) ;
179+ }
180+
181+ /**
182+ * 移除地形图层
183+ */
184+ removeTerrain ( ) {
185+ const ElliProvider = new Cesium . EllipsoidTerrainProvider ( ) ;
186+ this . viewer . terrainProvider = ElliProvider ;
187+ }
138188}
139189
140190CesiumZondy . Layer . BaseLayer = BaseLayer ;
0 commit comments