| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-04-22 09:44:30 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-08 20:27:59 | |||
| * @Last Modified time: 2020-05-09 13:10:37 | |||
| */ | |||
| ;(function() { | |||
| let isCesiumLoaded = false | |||
| @@ -10,7 +10,7 @@ | |||
| Author: 'Caven Chen', | |||
| GitHub: 'https://github.com/Digital-Visual', | |||
| Home: 'https://www.dvgis.cn', | |||
| Version: '1.4.2', | |||
| Version: '1.5.0', | |||
| Config: {}, | |||
| Namespace: {}, | |||
| Initialized: false | |||
| @@ -38,6 +38,17 @@ | |||
| requireCesium().then(Cesium => { | |||
| DC.Namespace['Cesium'] = Cesium | |||
| delete window.Cesium | |||
| DC.LayerType = {} | |||
| DC.OverlayType = {} | |||
| DC.EffectType = {} | |||
| DC.WidgetType = {} | |||
| DC.ImageryType = { | |||
| ARCGIS: 'arcgis', | |||
| SINGLE_TILE: 'single_tile', | |||
| WMTS: 'wmts', | |||
| XYZ: 'xyz', | |||
| COORD: 'Coord' | |||
| } | |||
| isCesiumLoaded = true | |||
| callback && callback() | |||
| }) | |||
| @@ -0,0 +1,11 @@ | |||
| /* | |||
| * @Author: Caven | |||
| * @Date: 2020-05-09 13:19:53 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-09 13:19:53 | |||
| */ | |||
| import './const' | |||
| import './utils' | |||
| import './math' | |||
| import './layer' | |||
| import './overlay' | |||
| @@ -2,14 +2,8 @@ | |||
| * @Author: Caven | |||
| * @Date: 2019-12-27 17:18:52 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-14 19:27:14 | |||
| * @Last Modified time: 2020-05-09 13:20:15 | |||
| */ | |||
| import './const' | |||
| import './utils' | |||
| import './math' | |||
| import './layer' | |||
| import './overlay' | |||
| import './imagery/DC.ImageryLayerFactory' | |||
| import './terrain/DC.TerrainFactory' | |||
| import './position/DC.Position' | |||
| @@ -2,29 +2,47 @@ | |||
| * @Author: Caven | |||
| * @Date: 2019-12-27 14:29:05 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-06 10:32:58 | |||
| * @Last Modified time: 2020-05-09 13:25:12 | |||
| */ | |||
| /** | |||
| * 框架开始 | |||
| */ | |||
| DC.ready = callback => { | |||
| try { | |||
| if (!DC.Initialized) { | |||
| DC.init(() => { | |||
| require('../thirdpart') | |||
| require('./DC.Loader') | |||
| const install = function(DC) { | |||
| if (!DC) { | |||
| throw new Error('DC.Overlay: Missing DC Base SDK') | |||
| } | |||
| DC.init(() => { | |||
| require('../thirdpart') | |||
| require('./DC.Loader.Base') | |||
| }) | |||
| /** | |||
| * 框架开始 | |||
| */ | |||
| DC.ready = callback => { | |||
| try { | |||
| if (!DC.Initialized) { | |||
| DC.init(() => { | |||
| require('./DC.Loader') | |||
| DC.Initialized = true | |||
| callback && callback() | |||
| }) | |||
| } else { | |||
| callback && callback() | |||
| DC.Initialized = true | |||
| }) | |||
| } else { | |||
| callback && callback() | |||
| } | |||
| } catch (e) { | |||
| delete window.Cesium | |||
| delete window.DC | |||
| console.error(e) | |||
| } | |||
| } catch (e) { | |||
| delete window.Cesium | |||
| DC.Initialized = false | |||
| console.error(e) | |||
| } | |||
| } | |||
| module.exports = {} | |||
| /* istanbul ignore if */ | |||
| if (typeof window !== 'undefined' && window.DC) { | |||
| install(window.DC) | |||
| } | |||
| module.exports = { | |||
| install | |||
| } | |||
| @@ -2,23 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-03 10:09:19 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-10 17:06:50 | |||
| * @Last Modified time: 2020-05-09 12:52:15 | |||
| */ | |||
| import './EventType' | |||
| import './StateType' | |||
| DC.LayerType = { | |||
| ...DC.LayerType | |||
| } | |||
| DC.OverlayType = { | |||
| ...DC.OverlayType | |||
| } | |||
| DC.EffectType = { | |||
| ...DC.EffectType | |||
| } | |||
| DC.WidgetType = { | |||
| ...DC.WidgetType | |||
| } | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-21 15:54:56 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-03-29 13:15:17 | |||
| * @Last Modified time: 2020-05-09 13:05:36 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import AmapImageryProvider from './provider/AmapImageryProvider' | |||
| @@ -14,6 +14,8 @@ import TencentImageryProvider from './provider/TencentImageryProvider' | |||
| DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create amap image layer | |||
| * @param {*} options | |||
| * | |||
| */ | |||
| static createAmapImageryLayer(options) { | |||
| return new AmapImageryProvider(options) | |||
| @@ -21,6 +23,7 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create baidu image layer | |||
| * @param {*} options | |||
| */ | |||
| static createBaiduImageryLayer(options) { | |||
| return new BaiduImageryProvider(options) | |||
| @@ -28,6 +31,7 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create google image layer | |||
| * @param {*} options | |||
| */ | |||
| static createGoogleImageryLayer(options) { | |||
| return new GoogleImageryProvider(options) | |||
| @@ -35,6 +39,7 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create tdt image layer | |||
| * @param {*} options | |||
| */ | |||
| static createTdtImageryLayer(options) { | |||
| return new TdtImageryProvider(options) | |||
| @@ -49,6 +54,7 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create arcgis image layer | |||
| * @param {*} options | |||
| */ | |||
| static createArcGisImageryLayer(options) { | |||
| return new Cesium.ArcGisMapServerImageryProvider(options) | |||
| @@ -56,6 +62,8 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create singel tile image layer | |||
| * @param {*} options | |||
| * | |||
| */ | |||
| static createSingleTileImageryLayer(options) { | |||
| return new Cesium.SingleTileImageryProvider(options) | |||
| @@ -63,6 +71,8 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create wmts image layer | |||
| * @param {*} options | |||
| * | |||
| */ | |||
| static createWMTSImageryLayer(options) { | |||
| return new Cesium.WebMapTileServiceImageryProvider(options) | |||
| @@ -70,6 +80,8 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create xyz image layer | |||
| * @param {*} options | |||
| * | |||
| */ | |||
| static createXYZImageryLayer(options) { | |||
| return new Cesium.UrlTemplateImageryProvider(options) | |||
| @@ -77,8 +89,54 @@ DC.ImageryLayerFactory = class { | |||
| /** | |||
| * Create coord image layer | |||
| * @param {*} options | |||
| * | |||
| */ | |||
| static createCoordImageryLayer(options) { | |||
| return new Cesium.TileCoordinatesImageryProvider(options) | |||
| } | |||
| /** | |||
| * | |||
| * @param {*} type | |||
| * @param {*} options | |||
| */ | |||
| static createImageryLayer(type, options) { | |||
| let imageryLayer = undefined | |||
| switch (type) { | |||
| case DC.ImageryType.AMAP: | |||
| imageryLayer = this.createAmapImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.BAIDU: | |||
| imageryLayer = this.createBaiduImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.GOOGLE: | |||
| imageryLayer = this.createGoogleImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.TDT: | |||
| imageryLayer = this.createTdtImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.TENCENT: | |||
| imageryLayer = this.createTencentImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.ARCGIS: | |||
| imageryLayer = this.createArcGisImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.SINGLE_TILE: | |||
| imageryLayer = this.createSingleTileImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.WMTS: | |||
| imageryLayer = this.createWMTSImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.XYZ: | |||
| imageryLayer = this.createXYZImageryLayer(options) | |||
| break | |||
| case DC.ImageryType.COORD: | |||
| imageryLayer = this.createCoordImageryLayer(options) | |||
| break | |||
| default: | |||
| break | |||
| } | |||
| return imageryLayer | |||
| } | |||
| } | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-15 20:31:28 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-30 12:33:06 | |||
| * @Last Modified time: 2020-05-09 12:52:46 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -22,4 +22,7 @@ class AmapImageryProvider extends Cesium.UrlTemplateImageryProvider { | |||
| super(options) | |||
| } | |||
| } | |||
| DC.ImageryType.AMAP = 'amap' | |||
| export default AmapImageryProvider | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-15 20:27:27 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-12 02:28:29 | |||
| * @Last Modified time: 2020-05-09 12:53:14 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -115,4 +115,6 @@ class BaiduImageryProvider { | |||
| } | |||
| } | |||
| DC.ImageryType.BAIDU = 'baidu' | |||
| export default BaiduImageryProvider | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-21 16:06:14 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-30 12:33:03 | |||
| * @Last Modified time: 2020-05-09 12:53:27 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -31,4 +31,6 @@ class GoogleImageryProvider extends Cesium.UrlTemplateImageryProvider { | |||
| } | |||
| } | |||
| DC.ImageryType.GOOGLE = 'google' | |||
| export default GoogleImageryProvider | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-15 20:31:46 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-02-12 02:05:03 | |||
| * @Last Modified time: 2020-05-09 12:53:37 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -29,4 +29,6 @@ class TdtImageryProvider extends Cesium.WebMapTileServiceImageryProvider { | |||
| } | |||
| } | |||
| DC.ImageryType.TDT = 'tdt' | |||
| export default TdtImageryProvider | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-21 16:10:47 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-30 12:32:51 | |||
| * @Last Modified time: 2020-05-09 12:54:58 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -20,4 +20,6 @@ class TencentImageryProvider extends Cesium.UrlTemplateImageryProvider { | |||
| } | |||
| } | |||
| DC.ImageryType.TENCENT = 'tdt' | |||
| export default TencentImageryProvider | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-03 09:38:21 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-06 10:09:57 | |||
| * @Last Modified time: 2020-05-09 12:46:32 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import { LayerEvent } from '@/core/event' | |||
| @@ -275,4 +275,6 @@ class Layer { | |||
| setStyle(style) {} | |||
| } | |||
| DC.Layer = Layer | |||
| export default Layer | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-03 12:18:17 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-06 10:29:09 | |||
| * @Last Modified time: 2020-05-09 12:46:01 | |||
| */ | |||
| import { OverlayEvent } from '@/core/event' | |||
| @@ -177,4 +177,6 @@ class Overlay { | |||
| } | |||
| } | |||
| DC.Overlay = Overlay | |||
| export default Overlay | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2019-12-27 17:13:24 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-04-29 21:04:33 | |||
| * @Last Modified time: 2020-05-09 13:23:14 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| @@ -38,9 +38,14 @@ const DEF_OPTS = { | |||
| DC.Viewer = class { | |||
| constructor(id, options = {}) { | |||
| if (!DC.Initialized) { | |||
| throw new Error('The DC is not initialized') | |||
| } | |||
| if (!id || !document.getElementById(id)) { | |||
| throw new Error('DC.Viewer:the id is empty') | |||
| } | |||
| this._delegate = new Cesium.Viewer(id, { | |||
| ...options, | |||
| ...DEF_OPTS | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-01-14 18:33:33 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-06 14:56:57 | |||
| * @Last Modified time: 2020-05-09 12:47:31 | |||
| */ | |||
| import { EffectEvent } from '@/core/event' | |||
| @@ -115,4 +115,6 @@ class Effect { | |||
| } | |||
| } | |||
| DC.Effect = Effect | |||
| export default Effect | |||
| @@ -2,7 +2,7 @@ | |||
| * @Author: Caven | |||
| * @Date: 2020-02-27 00:35:35 | |||
| * @Last Modified by: Caven | |||
| * @Last Modified time: 2020-05-06 13:06:11 | |||
| * @Last Modified time: 2020-05-09 10:49:51 | |||
| */ | |||
| import Cesium from '@/namespace' | |||
| import Layer from '@/core/layer/Layer' | |||
| @@ -188,7 +188,6 @@ DC.HeatLayer = class extends Layer { | |||
| _reDraw() { | |||
| /** set bounds */ | |||
| if (!this._bounds) { | |||
| return false | |||
| } | |||
| @@ -204,7 +203,6 @@ DC.HeatLayer = class extends Layer { | |||
| this._initCanvas() | |||
| } | |||
| let data = [] | |||
| this._positions.forEach(item => { | |||
| let coord = this._transformWGS84ToHeatmap({ | |||
| lng: item.lng || item.x, | |||
| @@ -221,9 +219,8 @@ DC.HeatLayer = class extends Layer { | |||
| max: 1, | |||
| data | |||
| }) | |||
| if (!this._entity.rectangle) { | |||
| this._initEntity() | |||
| } | |||
| this._delegate.entities.remove(this._entity) | |||
| this._initEntity() | |||
| let material = new Cesium.ImageMaterialProperty({ | |||
| image: this._heat._renderer.canvas, | |||
| transparent: true | |||