面朝大海,春暖花开

作者:xiaokcehui2021-4-3 4:11分类: 海洋三维(OEP3D)

        基于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


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/4516 人参与

发表评论:

欢迎使用手机扫描访问本站,还可以关注微信哦~