| @@ -1,63 +1,68 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"> | |||
| <head> | |||
| <meta charset="utf-8" /> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | |||
| <title>dc-example</title> | |||
| <script src="/libs/dc-sdk/dc.min.js"></script> | |||
| <link href="/libs/dc-sdk/dc.min.css" type="text/css" rel="stylesheet" /> | |||
| <link href="../index.css" type="text/css" rel="stylesheet" /> | |||
| </head> | |||
| <head> | |||
| <meta charset="utf-8"> | |||
| <meta name="viewport" content="width=device-width,initial-scale=1.0"> | |||
| <title>dc-example</title> | |||
| <script src='/libs/dc-sdk/dc.min.js'></script> | |||
| <link href='/libs/dc-sdk/dc.min.css' type='text/css' rel='stylesheet'> | |||
| <link href='../index.css' type='text/css' rel='stylesheet'> | |||
| </head> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <body> | |||
| <div id="viewer-container" class="viewer-container"></div> | |||
| <script> | |||
| let viewer = undefined | |||
| function initViewer() { | |||
| viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| iconUrl: '../assets/icon/elec.png', | |||
| name: '电子', | |||
| }) | |||
| <script> | |||
| let viewer = undefined | |||
| function initViewer() { | |||
| viewer = new DC.Viewer('viewer-container') | |||
| let baseLayer = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.AMAP, | |||
| { | |||
| crs:'WGS84' | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer, { | |||
| iconUrl: '../assets/icon/elec.png', | |||
| name: '电子' | |||
| }) | |||
| let baseLayer_img = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.AMAP,{ | |||
| style: 'img', | |||
| crs:'WGS84' | |||
| }) | |||
| viewer.addBaseLayer(baseLayer_img, { | |||
| iconUrl: '../assets/icon/img.png', | |||
| name: '影像' | |||
| }) | |||
| let baseLayer_img = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'img', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer(baseLayer_img, { | |||
| iconUrl: '../assets/icon/img.png', | |||
| name: '影像', | |||
| }) | |||
| let baseLayer_cva = DC.ImageryLayerFactory.createImageryLayer(DC.ImageryType.AMAP,{ | |||
| style: 'cva', | |||
| crs:'WGS84' | |||
| }) | |||
| viewer.addBaseLayer([baseLayer_img, baseLayer_cva], { | |||
| iconUrl: '../assets/icon/img.png', | |||
| name: '影像+注记' | |||
| }) | |||
| let baseLayer_cva = DC.ImageryLayerFactory.createImageryLayer( | |||
| DC.ImageryType.AMAP, | |||
| { | |||
| style: 'cva', | |||
| crs: 'WGS84', | |||
| } | |||
| ) | |||
| viewer.addBaseLayer([baseLayer_img, baseLayer_cva], { | |||
| iconUrl: '../assets/icon/img.png', | |||
| name: '影像+注记', | |||
| }) | |||
| // let layer = new DC.TilesetLayer('layer') | |||
| // viewer.addLayer(layer) | |||
| // let tileset = new DC.Tileset( | |||
| // '//resource.dvgis.cn/data/3dtiles/dayanta/tileset.json' | |||
| // ) | |||
| // tileset.setHeight(-420) | |||
| // layer.addOverlay(tileset) | |||
| // viewer.flyTo(tileset) | |||
| } | |||
| DC.ready({ | |||
| baseUrl:'../libs/dc-sdk/resources/' | |||
| }).then(initViewer) | |||
| </script> | |||
| </body> | |||
| // let layer = new DC.TilesetLayer('layer') | |||
| // viewer.addLayer(layer) | |||
| // let tileset = new DC.Tileset( | |||
| // '//resource.dvgis.cn/data/3dtiles/dayanta/tileset.json' | |||
| // ) | |||
| // tileset.setHeight(-420) | |||
| // layer.addOverlay(tileset) | |||
| // viewer.flyTo(tileset) | |||
| } | |||
| DC.ready({ | |||
| baseUrl: '../libs/dc-sdk/resources/', | |||
| }).then(initViewer) | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -3,7 +3,7 @@ | |||
| */ | |||
| import { Cesium } from '../../namespace' | |||
| const { EllipsoidTerrainProvider, ImageryLayer } = Cesium | |||
| const { ImageryLayer } = Cesium | |||
| class BaseLayerPicker { | |||
| constructor(options) { | |||
| @@ -20,31 +20,29 @@ class BaseLayerPicker { | |||
| if (!imageryLayer || !imageryLayer.layers) { | |||
| new Error('imagery format error') | |||
| } | |||
| let imageryLayers = this._globe.imageryLayers | |||
| if (!this._selectedImageryLayer) { | |||
| for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | |||
| let layer = imageryLayer.layers[i] | |||
| if (layer) { | |||
| imageryLayers.add( | |||
| ImageryLayer.fromProviderAsync(layer, imageryLayer.options), | |||
| 0 | |||
| ) | |||
| } | |||
| } | |||
| } else if ( | |||
| if ( | |||
| this._selectedImageryLayer && | |||
| imageryLayer.id === this._selectedImageryLayer.id | |||
| ) { | |||
| return | |||
| } | |||
| if ( | |||
| this._selectedImageryLayer && | |||
| imageryLayer.id !== this._selectedImageryLayer.id | |||
| ) { | |||
| imageryLayers.removeAll() | |||
| for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | |||
| let layer = imageryLayer.layers[i] | |||
| if (layer) { | |||
| imageryLayers.add( | |||
| ImageryLayer.fromProviderAsync(layer, imageryLayer.options), | |||
| 0 | |||
| ) | |||
| } | |||
| for (let i = 0; i < this._selectedImageryLayer.cache.length; i++) { | |||
| this._globe.imageryLayers.remove(this._selectedImageryLayer.cache[i]) | |||
| } | |||
| imageryLayer.cache = [] | |||
| } | |||
| for (let i = imageryLayer.layers.length - 1; i >= 0; i--) { | |||
| let layer = imageryLayer.layers[i] | |||
| let imagery = ImageryLayer.fromProviderAsync(layer, imageryLayer.options) | |||
| layer && this._globe.imageryLayers.add(imagery, 0) | |||
| imageryLayer.cache = [imagery] | |||
| } | |||
| this._selectedImageryLayer = imageryLayer | |||
| } | |||
| @@ -70,7 +68,7 @@ class BaseLayerPicker { | |||
| this._imageryLayers.push({ | |||
| id: `imagery-no-${this._count}`, | |||
| layers: imageryLayers, | |||
| options: options, | |||
| cache: [], | |||
| }) | |||
| return this | |||
| } | |||
| @@ -38,6 +38,7 @@ export { | |||
| KmlLayer, | |||
| LabelLayer, | |||
| PrimitiveLayer, | |||
| RasterTileLayer, | |||
| TilesetLayer, | |||
| VectorLayer, | |||
| } from './layer' | |||
| @@ -90,6 +90,8 @@ class Layer { | |||
| } else { | |||
| this._viewer.scene.primitives.add(this._delegate) | |||
| } | |||
| } else if (this._delegate instanceof Cesium.ImageryLayer) { | |||
| this._viewer.imageryLayers.add(this._delegate) | |||
| } else { | |||
| this._viewer.dataSources.add(this._delegate) | |||
| } | |||
| @@ -115,7 +117,9 @@ class Layer { | |||
| } else { | |||
| this._viewer.scene.primitives.remove(this._delegate) | |||
| } | |||
| } else if (this._delegate.then) { | |||
| } else if (this._delegate instanceof Cesium.ImageryLayer) { | |||
| this._viewer.imageryLayers.remove(this._delegate) | |||
| } else if (this._delegate instanceof Promise) { | |||
| this._delegate.then((dataSource) => { | |||
| dataSource.entities.removeAll() | |||
| }) | |||
| @@ -21,6 +21,7 @@ export { default as HtmlLayer } from './type/HtmlLayer' | |||
| export { default as KmlLayer } from './type/KmlLayer' | |||
| export { default as LabelLayer } from './type/LabelLayer' | |||
| export { default as PrimitiveLayer } from './type/PrimitiveLayer' | |||
| export { default as RasterTileLayer } from './type/RasterTileLayer' | |||
| export { default as TilesetLayer } from './type/TilesetLayer' | |||
| export { default as TopoJsonLayer } from './type/TopoJsonLayer' | |||
| export { default as VectorLayer } from './type/VectorLayer' | |||
| @@ -0,0 +1,23 @@ | |||
| /** | |||
| * @Author : Caven Chen | |||
| */ | |||
| import { Cesium } from '../../../namespace' | |||
| import State from '../../state/State' | |||
| import Layer from '../Layer' | |||
| class RasterTileLayer extends Layer { | |||
| constructor(id, provider, options) { | |||
| super(id) | |||
| this._delegate = Cesium.ImageryLayer.fromProviderAsync(provider, options) | |||
| this._state = State.INITIALIZED | |||
| } | |||
| get type() { | |||
| return Layer.getLayerType('raster-tile') | |||
| } | |||
| } | |||
| Layer.registerType('raster-tile') | |||
| export default RasterTileLayer | |||