热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SuperMapiClient3DforWebGL教程(地形篇)EllipsoidTerrainProvider

作者:为梦齐舞本文同步更新于简书文章https:www.jianshu.compb8934d5186ed一、EllipsoidTerrainProvider介绍Ell

作者:为梦齐舞

本文同步更新于简书文章https://www.jianshu.com/p/b8934d5186ed
一、EllipsoidTerrainProvider介绍
EllipsoidTerrainProvider是WebGL中最简单的一种地形,当我们初始化一个三维球时,Globe默认会加载一层地形,这个默认的地形就是本文的主角EllipsoidTerrainProvider。
EllipsoidTerrainProvider其实就是地形高度全是0的地形图层,不支持水面,不支持法向量,下图中可以看到水面和法向量实现中直接返回的false
水面和法向量实现
EllipsoidTerrainProvider如果没有特意指定的情况下,默认采用WGS84坐标系。实现方法是以高度图的方法进行实现的,默认网格大小16*16
网格实现
二、构造EllipsoidTerrainProvider
首先我们来看下构造参数,只有两个tilingScheme和ellipsoid:
1、tilingScheme如果不进行指定的话,默认使用GeographicTilingScheme,而GeographicTilingScheme的默认参考椭球是Ellipsoid.WGS84。
2、ellipsoid,如果指定了tilingScheme,则ellipsoid无效,如果未指定任何参数,则使用WGS84椭圆体
构造参数
接下来看下EllipsoidTerrainProvider的属性
1、hasVertexNormals:法向量,上面已经提过了,EllipsoidTerrainProvider不支持。
2、hasWaterMask:水纹,和hasVertexNormals一样也不支持。
3、isCreateSkirt:是否创建裙边,这个参数是为了避免Tile之间的缝隙,每一个Tile四周会围成一个栅栏,指定该栅栏的高度,保证和相邻的Tile拼接时没有间隙。
常用的参数大致就是这些。
三、实战EllipsoidTerrainProvider
1、创建的viewer时,我们可以看下已经默认自动添加了一个EllipsoidTerrainProvider
viewer默认添加
当然如果你希望代码实现一把,也是没有问题的,另外这两句代码也可以用于移除当前添加的地形,就是让它重回默认值。

var terrainProvider=new Cesium.EllipsoidTerrainProvider();
viewer.terrainProvider=terrainProvider;

2、修改EllipsoidTerrainProvider为墨卡托投影,这样如果添加的影像切片为墨卡托时,地形的TileScheme和影像的保持一致,就不再需要去转换影像的坐标进行渲染,性能会更好,代码如下:

var terrainProvider=new Cesium.EllipsoidTerrainProvider({tilingScheme:new Cesium.WebMercatorTilingScheme()});
viewer.terrainProvider=terrainProvider;

可以对比默认添加的,这里的TileScheme已经变为墨卡托了
墨卡托投影


推荐阅读
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
author-avatar
奶油晓生2502876643
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有