首页 > 编程知识 正文

arcgis英文版怎么汉化,cesium获取地形高度值

时间:2023-05-05 20:44:14 阅读:144581 作者:4677

目录

打开“快速开始”

使用地形照明和水特效(enablingterrainlightingandwatereffects )。

现有地形(待使用地形)

地形提供器(Terrain providers ) )。

资源(资源)

Cesium支持全球高分辨率地形可视化和海洋、湖泊和河流水动态化的影响。 山顶和山谷等地形特征可以真实展示3D地球,这比2D地图更有优势。

地形数据集非常巨大,通常总计千兆字节或兆字节。 要使用低分辨率图形API或常规3D引擎有效地可视化地形,需要相当大的工作量。 幸运的是,Cesium已经完成了很多工作,所以只需要几行代码。

让我们从“快速开始”示例开始。 让我们打开沙堡的Hello World的例子。 默认情况下,地球使用的WGS84 ellipsoid。 要添加以Cesium ion托管的Cesium World地形,请添加以下代码(var viewer=. ) :

viewer.terrain provider=cesium.createworldterrain (; 修改此示例后,请按F8键放大山区,按住鼠标中心按钮,然后拖动到水平视角以感受地形。 可以看到珠穆朗玛峰:

当我们走近时,Cesium根据我们可以看到地球上的那些地方以及它们离地球有多远,求出了更高分辨率的地形。

地形和图像是分开处理的。 在上例中,默认图像被地形复盖。 图像提供器可以与地形提供器配合使用,以显示图像图层教程“图像图层教程”中的管理图像。

使用“启用地形照明和水特效”(enablingterrainlightingandwatereffects )的Cesium世界地形还包括地形照明数据和水特效所需的海岸线数据。 地形数据服务在传输地形分片时没有照明和海岸线数据。 创建CesiumTerrainProvider时,必须请求地形照明或海岸线数据。

若要启用地形照明,请从地形服务器请求“顶点法线延伸”(VertexNormals extension ),然后在地球上使用照明。

varterrainprovider=cesium.createworldterrain ({ requestvertexnormals : true }; viewer.terrain提供程序=terrain提供程序; viewer.scene.globe.enable lighting=true; 虽然和上面的珠穆朗玛峰观点相同,但是现在太阳的位置屏蔽了地形。

style="text-align:center;">

水特效以相同的方式实现。为了使用水特效,我们可以像下面这样,从地形服务器请求WaterMask extension:

var terrainProvider = Cesium.createWorldTerrain({      requestWaterMask: true  });  viewer.terrainProvider = terrainProvider;  

放大到有水的地方,例如旧金山湾:

随时间波动的波浪,明亮的太阳和月亮的反射光。

在sandcastle中查看地形实例,探寻一些有趣的地形和水域区域。

现有的地形(Ready-to-use terrain)

Cesium World Terrain可以在你自己的Cesium应用程序中使用,只需要添加几行代码就可以。

地形提供商(Terrain providers)

Cesium支持几种请求地形数据提供商数据的方式。大多数地形提供商使用HTTP上的REST接口来请求地形瓦片作为高度映射。根据请求的格式和地形数据的组织方式,地形数据提供商会有所不同。Cesium有以下地形提供商:

Cesium World Terrain-高分辨世界范围地形,通过扩展支持地形灯光和水域特效。使用开放的运行时格式-quantized-mesh v1.0(量化网格)来传递地形瓦片。在Cesium中查看CesiumTerrainProvider;Google Earth Enterprise-从高程图生成地形。查看GoogleEarthEnterpriseTerrainProvider;VT MAK VR-TheWorld Server-从VR-TheWorld Server请求的高程地图生成地形。他们的托管服务器有全球范围的90米分辨率地形数据,包括测深数据。查看VRTheWorldTerrainProvider;椭球(Ellipsoid)-程序创建一个椭球的光滑表面。这缺乏真实的地形外表,但不需要从服务器请求数据,却对于例如空间的一些应用很有用。查看EllipsoidTerrainProvider。

通过实现地形提供商的接口(TerrainProvider),我们可以使用其它地形服务。如果这样做,认为是有普遍用途的话,为了大家共同的利益请贡献给Cesium。

正如上文所说,为了使用地形提供商的数据,我们创建并通过设置Viewer.terrainProvider来分配它。地形提供商的建立与影像提供商(imagery providers)一样,一般包括地形服务的url和一个可选代理(如果服务器不支持跨域资源共享(CORS))。

一些地形提供商,像CesiumTerrainProvider,包含水域特效需要的海岸线数据。通过改变法线图,其常使用CentralBody.oceanNormalMapUrl创建波浪,来定制水。更改影像提供商还会影像水的外观,这是因为水的颜色与底层影像是混合在一起的。

资源(Resources)

Checkout 沙堡中的地形示例(terrain example)和所有地形提供商(all terrain providers)的参考文档。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。