【cesium-1】cesium地形、地图加载

有段时间自学了cesium,这里记录一下自学过程,希望在所需之时查阅~~

目录

基础开发环境配置

创建第一个Cesium球

Cesium常用类介绍

Cesium地图、地形加载

Cesium坐标系

问题解决


基础开发环境配置

环境:VS code,cesium:1.112

1、cesium源码包下载与环境配置

源码包下载:Cesium: The Platform for 3D Geospatial ,Platform-Dowmloads

下载的包里包括 Cesium API 源代码 Source 文件夹,以及编译后的 Build 文件夹,还有Demo、API文档、沙盒等等,我们只需要 Build 文件夹下的 Cesium 这个文件夹,它是编译后 Cesium 包的正式版本,开发的话只需要这个就OK。

VS code配置所需插件:

1)ESLint;代码检查

2)Chinese(Simplified)Language Pack for vs code;

3)open in browser;用浏览器打开

4)Live Server。用服务打开

环境已经配置好了,接下来创建第一个小球吧~~

创建第一个Cesium球

新建html文件

小技巧:新建一个html文件,输入!创建html模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="../Cesium.js"></script>
    <style>
        @import url(../Widgets/widgets.css);
        html, body, #cesiumContainer {
            width: 100%; height: 100%; margin: 0; padding: 0; overflow: hidden;
        }
    </style>
    <div id="cesiumContainer"></div>
    <script>
        var viewer = new Cesium.Viewer('cesiumContainer');
    </script>
</body>
</html>

运行:

打开API文档:

在源码目录下index.html文件,右击open with Live server开启本地服务,点击Documentation即可打开cesium API文档。

Cesium常用类介绍

1、scene场景类

<script>
     var viewer = new Cesium.Viewer('cesiumContainer',{
         animation:false,
         timeline:false
     });
     viewer.scene.camera.setView({
         destination:Cesium.Cartesian3.fromDegrees(116.38,39.9,1500)
     })
 </script>

在开发调试模式下查询某视角信息:

2、Entity实体类

Entity在使用中主要用于加载实体模型、几何图形,对其进行样式设置、动态修改等。

<script>
     var viewer = new Cesium.Viewer('cesiumContainer',{
         animation:false,
         timeline:false
     });
       
     const entity = viewer.entities.add({
         position:Cesium.Cartesian3.fromDegrees(116.39,38.9,400),
         point:{
             pixelSize:100,
             color:new Cesium.Color(0,1,0,1)
         }
     })
     viewer.trackedEntity = entity;
 </script>

3、DataSourceCollection类

用于加载矢量数据,支持加载矢量数集和外部文件的调用,有CzmlDataSource、kmlDataSource、GeoJsonDataSource三种调用方法。

 在线工具推荐:

<script>
     var viewer = new Cesium.Viewer('cesiumContainer',{
         animation:false,
         timeline:false
     });
        
     viewer.dataSources.add(
         Cesium.GeoJsonDataSource.load(
             //记得将路径更改为自己的数据路径
             "../testdata/ne_10m_us_states.topojson"
         )    
     )
</script>

Cesium地图、地形加载

1、加载地形

Cesium.Ion.defaultAccessToken ='';
        
const viewer = new Cesium.Viewer('cesiumContainer',{
    baseLayerPicker:false,
    terrainProvider: await Cesium.createWorldTerrainAsync({
        requestWaterMask: true,
        requestVertexNormals: true
    }),
});

Cesium.Ion.defaultAccessToken ='**'
        
const viewer = new Cesium.Viewer("cesiumContainer",{
    baseLayerPicker:false,           
});

viewer.scene.setTerrain(
    new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromIonAssetId(1))
);
           

2、加载地图

1)加载cesium在线资源

Cesium.Ion.defaultAccessToken ='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlZTBmMjMwZC05OTlhLTQwZTYtYjU2ZC0zY2MzZWU3NzQ5NWMiLCJpZCI6NTA1OTEsImlhdCI6MTYxNzc2MTM3Nn0.lSz_1-ihLGeFwu9phZroo_hGVY68QRZfi62J03qu0qM'
const viewer = new Cesium.Viewer("cesiumContainer",{
    baseLayerPicker:false,           
})
const layer = viewer.imageryLayers.addImageryProvider(
    await Cesium.IonImageryProvider.fromAssetId(3812)
);

2)加载ArcGIS地图服务

const esri = await Cesium.ArcGisMapServerImageryProvider.fromUrl('https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer')
const viewer = new Cesium.Viewer("cesiumContainer",{
    baseLayerPicker:false,
})
viewer.imageryLayers.addImageryProvider(esri);

3)加载百度地图

var gaodeImageryProvider = new Cesium.UrlTemplateImageryProvider({
     url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
     maximumLevel: 18,
     minimumLevel: 1,
     credit: 'Amap'
});

var viewer = new Cesium.Viewer("cesiumContainer",{
    baseLayerPicker:false,
})
      
viewer.imageryLayers.addImageryProvider(gaodeImageryProvider);

参考链接 Cesium入门之六:Cesium加载影像图层(ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图)_cesium天地图-CSDN博客

4、加载倾斜摄像模型

Cesium坐标系

  • 1、WGS84经纬度坐标系
  • 2、WGS84弧度坐标系(Cartographic)
  • 3、笛卡尔空间直角坐标系(Cartesian3)
  • 4、平面坐标系(Cartesian2),又叫屏幕坐标系
  • 5、4D笛卡尔坐标系(Cartesian4)

问题解决

 (1)无法显示三维球,报如下错误 

解决方法:

Cesium ion

从cesium官网获取token,在viewer前加入Cesium.Ion.defaultAccessToken = ‘your_access_token’; 

参考链接 Cesium中文api文档 | Index - Cesium Documentation

https://www.cnblogs.com/zgboy/p/17664232.html

Hello World - Cesium Sandcastle

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Cesium是一个开源的地理信息系统(GIS)库,它基于WebGL技术,通过浏览器实现高性能的三维地球和地理数据可视化。TDTJS是天地图的JavaScript API,提供了丰富的地图服务和功能。Cesium-tdtjs是将Cesium与TDTJS相结合,实现了将天地图Cesium进行集成的功能。 使用Cesium-tdtjs,可以在Cesium的基础上使用天地图地图服务,比如卫星图、地形图和矢量图等,通过调用TDTJS的API接口,可以实现对天地图的各种操作,如放大缩小、检索地点、绘制要素等。 Cesium-tdtjs还提供了丰富的可视化效果和交互功能。可以在三维地球上展示各种地理数据,如地形、建筑物、气象数据等,通过Cesium的强大渲染能力和TDTJS的地图显示,可以实现高度逼真的地理数据展示。同时,Cesium-tdtjs也提供了用户交互的功能,如鼠标控制、绘制路径、量测距离等,方便用户进行操作和分析。 总的来说,Cesium-tdtjs将Cesium和TDTJS结合起来,为开发者提供了一个强大的WebGIS开发平台。它可以帮助开发者快速构建高性能的三维地球和地理数据可视化应用,同时借助于天地图的丰富地图服务和功能,使应用具备更多的地理信息处理和展示能力。 ### 回答2: Cesium-tdtjs是一个兼容Cesium和天地图的JavaScript库。Cesium是一个用于创建3D地球和地理可视化应用程序的开源JavaScript库,而天地图是中国自主研发的全球数据服务平台。Cesium-tdtjs的目的是将这两个库结合起来,为开发者提供更好的创建地理可视化应用程序的工具。 Cesium-tdtjs可以在Cesium的基础上使用天地图的底图、注记和数据服务。开发者可以使用Cesium-tdtjs来加载地图的地理数据,并在Cesium的三维空间中进行可视化展示。这个库提供了天地图的图层切换、地名搜索、鼠标交互等功能,使开发者可以更加方便地构建出功能强大的地理可视化应用程序。 通过Cesium-tdtjs,开发者可以利用Cesium的强大功能和天地图的全球数据服务,创建出令人印象深刻的地球模型和互动地理可视化应用。这个库还支持相机操作、模型加载、数据可视化等功能,使得开发者能够更加灵活地控制地球的展示效果。 总之,Cesium-tdtjs是一个结合了Cesium和天地图的JavaScript库,为开发者提供了创建地理可视化应用程序的工具。使用Cesium-tdtjs,开发者可以方便地加载地图的数据,并在Cesium的三维空间中进行展示和交互。这个库为开发者提供了丰富的功能和灵活的控制,能够帮助开发者创建出精美而功能强大的地理可视化应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值