- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要实现跟踪实体的前 View ,它会根据实体的移动而变化。
当我为 viewer.trackedEntity
属性赋值时,相机会占据某个位置。是否可以更改此位置,使相机直接位于跟踪实体的前面?
我该如何为这个例子做这个?
var viewer = new Cesium.Viewer('cesiumContainer', {
infoBox: false,
selectionIndicator: false,
shouldAnimate: true,
terrainProvider: Cesium.createWorldTerrain()
});
var start = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 16));
var stop = Cesium.JulianDate.addSeconds(start, 360, new Cesium.JulianDate());
viewer.clock.startTime = start.clone();
viewer.clock.stopTime = stop.clone();
viewer.clock.currentTime = start.clone();
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP;
viewer.clock.multiplier = 10;
viewer.timeline.zoomTo(start, stop);
var position = new Cesium.SampledPositionProperty();
position.addSample(start, Cesium.Cartesian3.fromDegrees(-118.243683, 34.052235, 500000));
position.addSample(Cesium.JulianDate.addSeconds(start, 250, new Cesium.JulianDate()), Cesium.Cartesian3.fromDegrees(-110, 35.5, 500000));
position.addSample(Cesium.JulianDate.addSeconds(start, 500, new Cesium.JulianDate()), Cesium.Cartesian3.fromDegrees(-86.134903, 40.267193, 500000));
var entity = viewer.entities.add({
availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
start : start,
stop : stop
})]),
position : position,
orientation : new Cesium.VelocityOrientationProperty(position),
model : {
uri : 'https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.gltf',
minimumPixelSize : 64
},
path : {
resolution : 1,
material : new Cesium.PolylineGlowMaterialProperty({
glowPower : 0.1,
color : Cesium.Color.YELLOW
}),
width : 10
}
});
viewer.trackedEntity = entity;
<link href="https://cesiumjs.org/Cesium/Build/Cesium/Widgets/widgets.css" rel="stylesheet"/>
<script src="https://cesiumjs.org/Cesium/Build/CesiumUnminified/Cesium.js"></script>
<style>
@import url(../templates/bucket.css);
</style>
<div id="cesiumContainer" class="fullSize"></div>
<div id="loadingOverlay"><h1>Loading...</h1></div>
<div id="toolbar">
<div id="interpolationMenu"></div>
</div>
最佳答案
当向 Cesium.Viewer 添加实体时,您在实体中有一个属性,viewFrom
,因此通过执行以下操作:
var entity = viewer.entities.add({
availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({
start : start,
stop : stop
})]),
position : position,
orientation : new Cesium.VelocityOrientationProperty(position),
model : {
uri :
'https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.gltf',
minimumPixelSize : 64
},
path : {
resolution : 1,
material : new Cesium.PolylineGlowMaterialProperty({
glowPower : 0.1,
color : Cesium.Color.YELLOW
}),
width : 10
},
viewFrom: new Cesium.Cartesian3(30, 0, 0),
});
你可以得到你想要的效果,观察 viewFrom 是一个 Cartesian3 对象,所以如果你想要一个 YZ 平面可见的正面 View ,你应该只在 X 轴上设置距离。免责声明:正如评论中所指出的,这是一个东-北-所以 XYZ 取决于车辆本身的方向。
必须承认documentation for this非常差,甚至有关于此行为的错误。
但是在 long discussion in their forum 之后你会发现它是如何工作的
关于javascript - 铯 : View from the front of the tracked entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383806/
我正在尝试添加一个具有多种不同属性的实体,例如 Material (主要是 alpha)和旋转。 RectangleGraphics 覆盖了旋转,并且在我设置 Material 以表示纹理时起作用。
我正在测试 Cesiumjs 以查看它是否可以反射(reflect)近乎实时的体验 - 例如:飞机的位置。 为此,我需要绘制广告牌并让它们移动 - 我知道用铯可以做到这一点,只是不确定如何实现。 代码
我正在使用 Cesium 并希望在视觉上表示相同的两个实体之间的多条折线。例如,从实体 A 到实体 B 的绿色多段线,以及从实体 A 到实体 B 的蓝色多段线。我希望它们不要重叠或混合,所以我想象随着
我想使用铯在我的 map 中通过鼠标事件或键盘事件选项启用/禁用动态放大或缩小。cesium 中是否有启用/禁用此功能的任何选项或功能? 最佳答案 是的,这很简单,只需设置 enableZoom为假。
我有大量代表 map 上数据的框(类似于自定义数据源沙堡示例中的折线)。 我正在使用 addSample 来插入颜色变化,它按预期工作。但是,当我使用 SampledProperty 转换框尺寸时,性
我确信这很简单,但我已经搜索并查看了 Cesium 的文档。我在 Canvas 上绘制了几个点。它们根据它们所代表的内容进行颜色编码。我现在想“点击”一个点并在 JS 中发起一个 Action 。我已
我想这对于真正熟悉 Cesium 的 CZML 文件的人来说是一个简单的问题。我只是想使用 Cesium 将一系列纬度/经度/高度点显示为飞行路径。有人能告诉我“位置”标签应该是什么样的吗? 除非我找
我需要实现跟踪实体的前 View ,它会根据实体的移动而变化。 当我为 viewer.trackedEntity 属性赋值时,相机会占据某个位置。是否可以更改此位置,使相机直接位于跟踪实体的前面? 我
我想让我的相机跟随移动实体的第一人称视角。我不相信 trackedEntity 将适用于此用例,因为我不想查看实体,但我想查看 从它。我还希望用户能够使用鼠标相对于移动实体转动相机(例如,从移动平面的
如何在Cesium中设置不同形状的Z-index?请参阅下面的屏幕截图: 我希望圆柱体中的广告牌图标显示在圆柱体上。 提前致谢! 最佳答案 这并不容易,因为您的圆柱体是实际的 3D 体积,而您的广告牌
现在我使用 cesium-terrain-builder用于生成 .terrain 格式的地形图 block ,但我想知道 Cesium 可以与 float .tif 图 block 一起使用吗? 我
我正在尝试在基于标准 HelloWorld 示例应用程序的测试应用程序中加载以下 geoJson 文件。 { "type": "FeatureCollection", "generator":
当缩放比例增加到一定级别以上时,我想隐藏 map 的标签。 对于这个例子,我想在缩放级别 5 之后隐藏所有与 collection1 相关的标签: https://codepen.io/ollazar
我正在使用 Cesium JS,我是初学者。我在 2D 场景模式下初始化了 Cesium,但我无法将 map 居中。 这是我尝试过的: var widget = new Cesium.CesiumWi
我已将一些概述地球上每个国家/地区的 JSon 数据作为 GeoJSonDataSource 加载到我的 Cesium 项目中。每个国家/地区也作为单独的条目复制到数组中。为了突出显示一个国家/地区,
正在关注 guide at switch2osm.org我能够运行自己的 OSM tile 服务器。 我确实通过使用 webrowser 验证了我的 OSM tile 服务器的状态。例如在 http:
我是一名优秀的程序员,十分优秀!