基于cesium进行开发的封装库比较有名的是:cesiumlab,mars3d和dc-sdk,dc-sdk(数字视觉库),是caven chen大牛贡献的,如果想从事cesium的开发,不但需要看cesium提供的开发实例,而且也要学习别人是如何使用cesium。dc-sdk的代码是基于javascript。想要看懂js源码,就必须对javascript有个基本了解。网络上javascript的手册极为丰富。如果有网络的话,可以看网道的javascript教程,通俗好懂,网址是:https://wangdoc.com/javascript/types/object.html。
建议先看es5,再看es6,我就走了弯路,由于dc-sdk基于es6,直接看es6的教程,但还有有些东西不了解,网络上搜索也不是很了解。后来在es5的教程里看到了。因此,在网络上搜索不到,可能是非常简单的东西,常识性的东西,无需专门撰文写。下面是dc-dk封装cesium的源代码,如果能看懂,也就算入门了。
dc-sdk封装cesium的js文件源码:
/**
* @Author: Caven
* @Date: 2020-04-22 19:44:30
*/
import { initMixin, initUse } from './global-api'
// global namespace
let DC = {
version: __VERSION__,
accessToken: '',
author: __AUTHOR__,
home_page: __HOME_PAGE__,
Namespace: {},
Initialized: false
}
// init global api
initMixin(DC)
initUse(DC)
require('../LICENSE')
// load Cesium
let cesiumLoaded = false
DC.init = callback => {
if (!cesiumLoaded) {
new Promise((resolve, reject) => {
let Cesium = require('cesium/Cesium')
resolve(Cesium)
})
.then(Cesium => {
DC.Namespace['Cesium'] = Cesium
cesiumLoaded = true
delete window.Cesium
callback && callback()
})
.catch(e => {})
} else {
callback && callback()
}
}
export default DC
发表评论: