Cesium之初始化视图

搭建好cesium环境之后
在项目中找到helloworld.html页面
在这里插入图片描述
这里面只有var viewer = new Cesium.Viewer(‘cesiumContainer’);这一段代码
我们可以对其进行设置
具体可以参考官方的API
我这里就直接使用zlx312博客中的这一部分说明

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()  
    //需要进行可视化的数据源的集合  
} );  

cesium中提供了三种设置View的方式 :setView,flyto,lookAt
我们这里使用的是setView 其他的两种可以查看下方链接,里面有详细教程
http://cesium.xin/wordpress/archives/261.html
下面是设置初始化的视图的位置,镜头以及视角
(116.427674,39.977968)为经纬度也就是位置,
获取地方经纬度可以在http://api.map.baidu.com/lbsapi/getpoint/index.html
中点击自己想要选择的位置就可以看到经纬度
10000代表的是高度为一万公里
-90为倾斜角度
下面的heading、pitch和roll就是镜头相对于xyz轴的角度
在这里插入图片描述

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)                          
	        }
	    }); 

这样就可以运行测试。
但在运行之后打开helloworld页面发现是空白
于是在借鉴zlx312博客中的那一部分中找到如下代码

 imageryProvider : new Cesium.OpenStreetMapImageryProvider( {  
            credit :'',  
            url : '//192.168.0.89:5539/planet-satellite/'  
        } ),

将其修改为以下几种中的一种就可以了
1、加载arcgis数据——ArcGisMapServerImageryProvider

     var viewer = new Cesium.Viewer("cesiumDiv",{
            imageryProvider:new Cesium.ArcGisMapServerImageryProvider({
                url:'http://atlasmaps.esri.com/arcgis/rest/services/Esri/USA_Population_Density/MapServer',
                enablePickFeatures:false
     }),
             baseLayerPicker:false  //这句不加可能会出错
});

2、加载OSM数据——createOpenStreetMapImageryProvider

    var viewer = new Cesium.Viewer("cesiumDiv",{
                imageryProvider:new Cesium.createOpenStreetMapImageryProvider({
                url:'https://a.tile.openstreetmap.org/'
            }),
            baseLayerPicker:false
});

3、加载MapBox数据——MapboxImageryProvider

     var viewer = new Cesium.Viewer("cesiumDiv",{
              imageryProvider:new Cesium.MapboxImageryProvider({
                mapId:'mapbox.satellite'
            }),
            baseLayerPicker:false
});

4、加载离线的影像服务——SingleTileImageryProvider
在Provider上多做一些文章,比如搞一张透明的图片,达到一些虚幻的效果,

或者在近地面实现一种类似平面的浏览效果,毕竟2D和3D在相机,数据单位上是有区别的。

比如隐藏地球主体后,叠加一些矢量面,突出主题.

    var viewer = new Cesium.Viewer("cesiumDiv",{

       skyBox:false,
            skyAtmosphere:false,
            baseLayerPicker:false,
            imageryProvider:new Cesium.SingleTileImageryProvider({
                url:'globe.jpg'
            }),
            contextOptions:{
                webgl:{
                    alpha:true
                }
            }
});

最后效果如下
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cesium是一个用于创建地球、航天器和其他3D可视化应用程序的开源JavaScript库。它提供了丰富的功能,包括地形渲染、地理数据可视化、虚拟摄像机控制以及与其他GIS和地理空间数据的交互。Cesium与Vue.js结合使用的方法有多种。 一种常见的方法是在Vue项目的index.html文件中引入Cesium库。你可以通过在index.html中的<head>标签中添加一个<script>标签来实现这一点。具体的代码如下所示: ```html <script src="https://cesium.com/downloads/cesiumjs/releases/1.80/Build/Cesium/Cesium.js"></script> ``` 然后,你可以在Vue项目的任何组件中使用Cesium对象。为了方便起见,你可以创建一个类来存储Cesium对象。你可以在这个类中创建一个Cesium视图容器,并初始化视图。这样,你就可以在Vue组件中使用这个类来获取Cesium对象。具体的步骤如下: 1. 在index.html中引入Cesium库。 2. 创建一个类,例如CesiumByZh,用于存储Cesium对象。 3. 在CesiumByZh类中创建一个Cesium视图容器,并初始化视图。 4. 在Vue组件中使用CesiumByZh类来获取Cesium对象,以便在项目中进行地理数据可视化等操作。 另外,如果你想避免Cesium参与webpack的打包过程,可以使用Vue的异步组件加载功能。具体的步骤如下: 1. 在Vue项目中创建一个异步组件,例如CesiumComponent。 2. 在CesiumComponent的template中引入Cesium视图容器,并初始化视图。 3. 在需要使用Cesium的地方,使用Vue的异步组件加载功能来引入CesiumComponent。 总之,使用Vue与Cesium结合可以实现强大的地理数据可视化应用程序。具体的实现方法取决于你的项目需求和技术栈。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Cesium+Vue项目环境搭建(不需要改动任何配置)](https://blog.csdn.net/weixin_43812586/article/details/126172462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [济南建筑数据模型可直接使用cesiumlab转换为cesium可用的3dtiles数据](https://download.csdn.net/download/zslsh44/88278569)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值