Cesium 学习记录(2) 初始化Viewer
来源:互联网 发布:免费手机文字扫描软件 编辑:程序博客网 时间:2024/04/29 23:49
上一节中我进行了Cesium开发环境的搭建,但是我并不需要一整个球呀~所以这一节的内容就是对Cesium的Viewer对象进行初始化,得到地球上我要的那一个地点的地图,并且对Viewer的组件有一个初步的了解。
在上一届HelloWorld例子中,JS部分是这样的:
<script> var viewer = new Cesium.Viewer('cesiumContainer'); viewer._cesiumWidget._creditContainer.style.display="none"; </script>仅仅一句代码我们就可以加载进来一个地球和各种地图,但是有很多功能可能是需要关闭或者开启的~
详细的设置可以参考如下,这部分内容我没有再去查API,而是直接引用了GISEarth的博客中的这部分说明,供大家参考。由于我不需要多余的按钮,所以我就把Cesium本来带的组件全部隐藏啦~
var viewer = new Cesium.Viewer( 'cesiumContainer', { animation : false,//是否创建动画小器件,左下角仪表 baseLayerPicker : false,//是否显示图层选择器 fullscreenButton : false,//是否显示全屏按钮 geocoder : false,//是否显示geocoder小器件,右上角查询按钮 homeButton : false,//是否显示Home按钮 infoBox : false,//是否显示信息框 sceneModePicker : false,//是否显示3D/2D选择器 selectionIndicator : false,//是否显示选取指示器组件 timeline : false,//是否显示时间轴 navigationHelpButton : false,//是否显示右上角的帮助按钮 scene3DOnly : true,//如果设置为true,则所有几何图形以3D模式绘制以节约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 : '//192.168.0.89:5539/planet-satellite/' } ),//图像图层提供者,仅baseLayerPicker设为false有意义 terrainProvider : new Cesium.EllipsoidTerrainProvider(),//地形图层提供者,仅baseLayerPicker设为false有意义 skyBox : new Cesium.SkyBox({ sources : { positiveX : 'Cesium-1.7.1/Skybox/px.jpg', negativeX : 'Cesium-1.7.1/Skybox/mx.jpg', positiveY : 'Cesium-1.7.1/Skybox/py.jpg', negativeY : 'Cesium-1.7.1/Skybox/my.jpg', positiveZ : 'Cesium-1.7.1/Skybox/pz.jpg', negativeZ : 'Cesium-1.7.1/Skybox/mz.jpg' } }),//用于渲染星空的SkyBox对象 fullscreenElement : document.body,//全屏时渲染的HTML元素, useDefaultRenderLoop : true,//如果需要控制渲染循环,则设为true targetFrameRate : undefined,//使用默认render loop时的帧率 showRenderLoopErrors : false,//如果设为true,将在一个HTML面板中显示错误信息 automaticallyTrackDataSourceClocks : true,//自动追踪最近添加的数据源的时钟设置 contextOptions : undefined,//传递给Scene对象的上下文参数(scene.options) sceneMode : Cesium.SceneMode.SCENE3D,//初始场景模式 mapProjection : new Cesium.WebMercatorProjection(),//地图投影体系 dataSources : new Cesium.DataSourceCollection() //需要进行可视化的数据源的集合 } );对camera进行设置,我们就可以定义初始化时的镜头、视角~下面这段代码就是将镜头定位在经纬度为(111.07,39.05)的地方,高度为1万公里,下面的heading、pitch和roll就是镜头相对于xyz轴的角度,比如pitch为-90°而另外两个为0时,就是90°向下俯视地球。
viewer.camera.setView({ destination: Cesium.Cartesian3.fromDegrees(111.07, 39.05, 10000), orientation: { heading : Cesium.Math.toRadians(0), pitch : Cesium.Math.toRadians(-90), roll : Cesium.Math.toRadians(0) } });最后得到的就是下图所示的效果,很多按钮都被隐藏了,打开时也不再是整个地球,而是只有我需要的这一小部分,这样子就更方便后面的操作啦~
ps:如果是没有学过web的初学者,上面那一大串代码都放在<script></script>标签里就可以啦~当年我是纯小白的时候,看到一段一段的代码也是云里雾里,因为总是不知道放在哪里>///<
这一节就到这里啦,地图有了,下一步就是希望在gis地图上搞事情啦啦啦~~
阅读全文
0 0
- Cesium 学习记录(2) 初始化Viewer
- cesium学习记录(二)- 可视化空间数据Viewer 中的Entity
- Cesium学习(一)Viewer类及imageryProvider介绍
- Cesium 学习记录(1) 搭建Cesium开发环境
- Cesium学习笔记(2)
- Cesium之Viewer
- cesium学习记录(-)- 可视化空间数据Entity入门基础
- HTML VIEWER学习(2)
- cesium核心类Viewer简介
- Cesium学习笔记(3)
- Cesium学习笔记(4)
- Cesium学习笔记(5)
- Cesium学习(1):简介
- Cesium学习(2):Demo部署和运行
- Cesium 学习记录(3) 在地图上放置3D建筑模型
- Cesium viewer 最常用的控件 API
- Cesium学习笔记(四): 相机(camera)
- Cesium学习笔记(一)添加实体
- 软件管理
- PHP数据类型,数据存储
- iOS-使用imageView添加图片无法展示的三种解决方案
- Win10 RS3版 删除资源管理器中的“3D 对象”
- AIX常用的编译选项解释
- Cesium 学习记录(2) 初始化Viewer
- dengdai
- Python学习(十七)——re类与正则表达式
- SQL 语句的类型和 用法
- 矩阵快速幂(求斐波拉契数列的第N项)
- 关于并发开发的一些概念
- 常用权限和依赖
- 27、Selenium + Python 实现 UI 自动化测试-调用 JavaScript 修改元素属性
- 07-图4 哈利·波特的考试