Cesium 镜头飞至地表下后会看到破损的地表,影响用户体验,github上有人给出了解决方法,记录如下:

var viewer = new Cesium.Viewer('cesiumContainer');

var minPitch = -Cesium.Math.PI_OVER_TWO;
var maxPitch = 0;
var minHeight = 200; viewer.camera.changed.addEventListener(
function() {
if (viewer.camera._suspendTerrainAdjustment && viewer.scene.mode === Cesium.SceneMode.SCENE3D) {
viewer.camera._suspendTerrainAdjustment = false;
viewer.camera._adjustHeightForTerrain();
} // Keep camera in a reasonable pitch range
var pitch = viewer.camera.pitch; if (pitch > maxPitch || pitch < minPitch) {
viewer.scene.screenSpaceCameraController.enableTilt = false; // clamp the pitch
if(pitch > maxPitch ) {
pitch = maxPitch;
} else if(pitch < minPitch) {
pitch = minPitch;
} var destination = Cesium.Cartesian3.fromRadians(
viewer.camera.positionCartographic.longitude,
viewer.camera.positionCartographic.latitude,
Math.max(viewer.camera.positionCartographic.height, minHeight)); viewer.camera.setView({
destination: destination,
orientation: { pitch: pitch }
});
viewer.scene.screenSpaceCameraController.enableTilt = true;
}
}
);

Cesium 中阻止镜头飞至地表以下的更多相关文章

  1. Cesium中的地形和坐标转换说明

    1 Cesium中的地形 Cesium中的地形系统是一种由流式瓦片数据生成地形mesh的技术,厉害指出在于其可以自动模拟出地面.海洋的三维效果.创建地形图层的方式如下: var terrainProv ...

  2. cesium中json,geojson,stk,影像切片等数据的加载

    cesium中json.topojson.geojson.stk,影像切片等数据的加载 一.geojson.topojson,json数据的加载 不管是哪种json,都可以通过GeoJsonDataS ...

  3. Cesium中的坐标系及转换

    在我们开始学习Entity之前,我们首先需要先学习下Cesium中的坐标系,Cesium中有多个坐标系,在进行添加Entity时经常会使用到. 一.坐标系介绍 我们先来列举下Cesium中的坐标系:W ...

  4. Cesium中Clock控件及时间序列瓦片动态加载

    前言 前面已经写了两篇博客介绍Cesium,一篇整体上简单介绍了Cesium如何上手,还有一篇介绍了如何将Cesium与分布式地理信息处理框架Geotrellis相结合.Cesium的强大之处也在于其 ...

  5. 关于Cesium中的常用坐标系及说明

    Cesium是一个基于JavaScript的开源框架,可用于在浏览器中绘制3D的地球,并在其上绘制地图(支持多种格式的瓦片服务),该框架不需要任何插件支持,但是浏览器必须支持WebGL. Cesium ...

  6. Cesium 中两种添加 model 方法的区别

    概述 Cesium 中包含两种添加 model 的方法,分别为: 通过 viewer.entities.add() 函数添加 通过 viewer.scene.primitives.add() 函数添加 ...

  7. Cesium中导入三维模型方法(dae到glft/bgltf) 【转】

    http://blog.csdn.net/l491453302/article/details/46766909 目录(?)[+] Cesium中目前支持gltf和bgltf两种格式.“gltf是kh ...

  8. Cesium中Homebutton改变默认跳转位置 【转】

    在Cesium中,Homebutton的默认跳转位置是美国,那么在开发中我们如何更改这个默认跳转位置呢,这就要更改一下源代码了: Camera.DEFAULT_VIEW_RECTANGLE = Rec ...

  9. js中阻止事件冒泡和浏览器默认行为

    在使用javascript编程时会遇到一个问题,就是当你给html添加事件时,由于浏览器默认的为冒泡型事件触发机制,所以会触发你不想触发的事件.那么通过如下的函数可以解决这个问题.[兼容IE和FF] ...

随机推荐

  1. laravel安装nova 运行php artisan migrate出错

    报错一$ php artisan migrate Illuminate\Database\QueryException : could not find driver (SQL: select * f ...

  2. python静态属性的理解

    python中并没有像 C语言 C++ java 那样定义静态属性的关键字 static 那么在python中是怎么做的呢? class A(object): name="lance&quo ...

  3. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  4. 老男孩Python全栈学习 S9 日常作业 013

    1.写一个求正方形周长和面积的类 class perimeter: def __init__(s,long): s.long = long def Perimeter(s): print((s.lon ...

  5. LinkedBlockingQueue阻塞队列详解

    主要api java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现.        LinkedBlock ...

  6. 使用Docker+Jenkins自动构建部署

    环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...

  7. 安装部署 Goaccess

    CentOS 7安装 Goaccess 安装依赖 # yum install ncurses-devel geoip-devel libmaxminddb-devel tokyocabinet-dev ...

  8. shell 脚本实现定时备份mysql数据库

    首先要知道直接在脚本中输入mysql的密码是不被允许的,但是我们可以曲线救国 1. 在新建一个文件专门用来存储用户密码 如: vim ./.mysql.conf [mysqldump] user=yo ...

  9. SqlServer查询某数据在某表某列中

    create proc spFind_Column_In_DB ( @type int,--类型:为文字类型.为数值类型 @str nvarchar(100)--需要搜索的名字 ) as --创建临时 ...

  10. python算法&二分查找法

    import random def random_list(n): result = [] ids = list(range(1001,1001+n)) a1 = ["赵",&qu ...