【游戏开发】初识 cesiumJS、开发环境搭建

2021-05-26
5660
0
初识 cesiumJS

 

cesium是一个跨平台、跨浏览器的展示三维地球和地图的 javascript 库;cesium支持三维地球(3D)、二维地图(2D)以及2.5D哥伦布视图(2.5D)等三维数据展示,如各种几何图形、高亮区域、三维模型和动态数据的可视化展示;

 

cesium 使用 WebGL 来进行硬件加速图形,使用时不需要任何插件支持,但是浏览器必须支持WebGL;cesium 是基于 Apache2.0 许可的开源程序,它可以免费的用于商业和非商业用途;cesium 可应用于三维数字地球, 数据可视化, 创建虚拟场景等功能;

 

2. cesiumJS 支持的数据源

 

对于他支持的数据源呢,主要有以下:

 

影像数据:Bing、ArcGIS、OSM、WMTS、WMS 等;地形数据:ArcGIS、谷歌、STK 等;矢量数据:KML、KMZ、GeoJSON、TopoJSON、CZML;三维模型:GLTF、GLB(二进制glTF文件);三维瓦片:3D Tiles(倾斜摄影、人工模型、 三维建筑物、CAD、BIM,点云数据等)3. cesiumJS 学习。

 

前面也说了,cesium 是基于 WebGL 来进行渲染图形;这也就离不开对于 web 端开发的学习以及 WebGL 等。

 

开发环境搭建
 

1. 静态资源引入

 

这种方式也是最简单的。可以通过在官网进行下载代码:

 

 

然后解压之后会看到如下目录:

 
 

然后在项目中 index.html 中进行引入即可:

<!DOCTYPE html>

<head>

<title>Hello World</title>

<script src="../Build/Cesium/Cesium.js"></script>

<link href="../Build/Cesium/Widgets/widgets.css" rel="stylesheet" />

<style>

html,

body,

#mapCon{

mapCon: 100%;

height: 100%;

margin: 0;

padding: 0;

overflow: hidden;

}

</style>

</head>

<body>

<div id="mapCon"></div>

<script>

const viewer = new Cesium.Viewer(''mapCon'')

</script>

</body>

 

这种方式呢,不管是我们通过目前主流的三大框架的开发方式还是直接 html 这种不基于框架来开发都是适用的。不过,如果是基于 typescript 的开发环境,还得在全局类型进行定义 Cesium,不然报错;

 

declare const Cesium;

 

或者直接将下载的 cesium 中源码的 cesium.d.ts 拿到 src 文件夹下:

 

 

修改为:

 

declare module Cesium {}

 

这样,写代码也就会有提示:

 

 

2. npm 方式管理安装

 

另一种方式就是通过 npm 进行安装,通过命令:

 

npm install cesium

 

然后在项目中通过 require 的方式进行引用:这里因为 cesium 是 nodejs 的一个模块,并不是 ES6 模块规范导出的。

 

import React, { useEffect, useRef } from ''react''

const Cesium = require(''cesium'');

Cesium.Ion.defaultAccessToken = ''你的 key''

const Map3d = () => {

const mapRef = useRef<HTMLDivElement>(null)

useEffect(() => {

mapRef && mapRef.current && new Cesium.Viewer(mapRef.current)

}, [])

return <div ref={mapRef}></div>

}

export default Map3d

 

如果需要支持 es6 模块这种,可以通过修改 webpack 的加载方式。

 

同样如果是想要支持 ts 提示的话,可以按照前面的步骤,通过复制 cesium.d.ts 的方式实现。

 

其他一些问题:

 

token 的获取,通过 cesium 官网注册账号进行申请 key;其他的方式可以在 沙盒中。打印 console.log(Cesium.Ion.defaultAccessToken); 这种方式的话;只适用于你的 demo 项目;因为官方网站会不定期修改这个 key;最好还是去申请一个。

 

总的来说,还是推荐通过静态资源的方式进行 cesium 的开发;

 

 

转载声明:本文来源于网络,不作任何商业用途。

免责声明:本文内部分内容来自网络,所涉绘画作品及文字版权与著作权归原作者,若有侵权或异议请联系我们处理。
收藏

全部评论

您还没登录

暂无留言,赶紧抢占沙发
绘学霸是国内专业的CG数字艺术设计线上线下学习平台,在绘学霸有2D绘画、3D模型、影视后期、动画、特效等数字艺术培训课程,也有学习资源下载,还有行业社区交流。学习、交流,来绘学霸就对了。
绘学霸iOS端二维码

IOS下载

绘学霸安卓端二维码

安卓下载

绘学霸微信小程序二维码

小程序

版权声明
本网站所有产品设计、功能及展示形式,均已受版权或产权保护,任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
热线电话
17688437870
咨询时间:9:00~21:00
在线客服
联系网站客服
客服微信:17688437870
公司地址
中国·广州
广州市海珠区晓港中马路130号之19
绘学霸客户端(权限暂无,用于CG资源与教程交流分享)
开发者:广州王氏软件科技有限公司 | 应用版本:Android:6.0,IOS:5.1 | App隐私政策> | 应用权限 | 更新时间:2020.1.6