之前在做大屏系统的时候,包含了一个三维地图,前端使用的地图引擎用的是Cesium
,一直想抽时间来研究下Cesium
,作为三维地图,以后的用途就会越来越广,还是很有必要来好好深耕的。Cesium
是一款开源的基于JavaScript
的3D地图框架。其实他就是一个地图可视化框架,CesiumJS
是一款用于创建虚拟场景的3D地理信息平台。目标是用于创建以基于 Web
的地图动态数据可视化。目前尽力提升平台的性能、准确率、虚拟化能力、易用性以及平台的各种支持。其中Viewer
是Cesium
渲染器的核心功能,直接将地图和场景显示在浏览器中。下面对Viewer
中的属性做了简单介绍,方便以后配置相关参数的时候能用到。
var viewer = new Cesium.Viewer('cesiumContainer',{
animation:false,//是否显示左下角的仪表盘
baseLayerPicker:false,//是否显示图层选择器按钮,右上角那个地图图标
fullscreenButton:false,//是否显示全屏按钮
vrButton:false,//是否显示VR按钮
geocoder:false,//是否显示搜索按钮
homeButton:false,//是否显示主页按钮
infoBox:false,//是否显示提示信息
sceneModePicker:false,//是否显示右上角的模式切换按钮
selectionIndicator:false,//是否显示选取指示器组件
timeline:false,//是否显示下边的时间轴
navigationHelpButton:false,//是否显示右上角的帮助按钮
navigationInstructionsInitiallyVisible:true,//是不显示导航
scene3DOnly:true,//是否指定仅为三维模式,全部使用三维模式可节约GPU资源
clock : new Cesium.Clock(),//用于控制当前时间的时钟对象
selectedImageryProviderViewModel:undefined,//当前图象图层的显示模型,设置baseLayerPicker为true才生效
imageryProviderViewModels : Cesium.createDefaultImageryProviderViewModels(),//可供BaseLayerPicker选择的图像图层ProviderViewModel数组
selectedTerrainProviderViewModel:undefined,//当前地形图层的显示模型,设置baseLayerPicker为true才生效
terrainProviderViewModels:Cesium.createDefaultTerrainProviderViewModels(),//可供BaseLayerPicker选择的地形图层ProviderViewModel数组
// imageryProvider : new Cesium.OpenStreetMapImageryProvider( {
// credit :'',
// url : ''
// } ),//图像图层提供者
terrainProvider : new Cesium.EllipsoidTerrainProvider(),//地形图层提供者,
// skyBox : new Cesium.SkyBox({
// sources : {
// positiveX : 'stars/TychoSkymapII.t3_08192x04096_80_px.jpg',
// negativeX : 'stars/TychoSkymapII.t3_08192x04096_80_mx.jpg',
// positiveY : 'stars/TychoSkymapII.t3_08192x04096_80_py.jpg',
// negativeY : 'stars/TychoSkymapII.t3_08192x04096_80_my.jpg',
// positiveZ : 'stars/TychoSkymapII.t3_08192x04096_80_pz.jpg',
// negativeZ : 'stars/TychoSkymapII.t3_08192x04096_80_mz.jpg'
// }
// }),//用于渲染星空的SkyBox对象
skyAtmosphere:new Cesium.SkyAtmosphere(),//设置天空大气层
fullscreenElement:document.body,//全屏时指定的元素
useDefaultRenderLoop:true,//是否开启默认的循环渲染器
targetFrameRate:10,//使用默认渲染循环时的目标帧速率
showRenderLoopErrors:true,//显示渲染错误信息
useBrowserRecommendedResolution:false,//使用浏览器的分辨率进行渲染
automaticallyTrackDataSourceClocks : true,//自动追踪最近添加的数据源的时钟设置
contextOptions : undefined,//传递给Scene对象的上下文参数
sceneMode:Cesium.SceneMode.SCENE3D,//设置地图场景模式
mapProjection:new Cesium.GeographicProjection(),//设置地图投影坐标系
// globe:false,//在场景中使用的地球仪。如果设置为false,则不会添加地球仪。
orderIndependentTranslucency:true,//设置无关的透明性
creditContainer:null,//设置包含CreditDisplay的DOM元素或ID。
dataSources:new Cesium.DataSourceCollection(),//设置数据源
terrainExaggeration:1.0,//用来放大地形的标量
shadows:true,//设置阴影是否由光源投射。
terrainShadows:Cesium.ShadowMode.RECEIVE_ONLY,//设置地形图的阴影
mapMode2D:Cesium.MapMode2D.INFINITE_SCROLL,//设置二维地图是可旋转的还是可以在水平方向无限滚动。
projectionPicker:false,//是否显示投影选择器
requestRenderMode:true,//如果为true,则仅当根据场景中的更改确定需要时才会渲染帧
maximumRenderTimeChange:true,//设置请求呈现之前允许的最大模拟时间更改
});