- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用铯,并试图检测折线与地球地形相交的位置。我有一条多段线,它从空中的某个点开始,以一定的角度向地球延伸。
现在我正在使用设定的距离计算终点,所以我有一个起点和终点。我想检测这条折线首先撞击地球表面的位置,并在该点停止绘制。例如,如果有一座 Alpine ,我不希望线路在山的另一边继续。
我使用 IntersectionTests
尝试了几种不同的方法,特别是 grazingAltitudeLocation
和 rayEllipsoid
但没有任何运气。我一直在用折线的起点和终点创建一条射线,然后使用viewer.scene.globe.ellipsoid作为函数中的椭球体。我不断将起点作为交点返回。
有谁知道我做错了什么,或者有其他方法的建议吗?任何帮助将不胜感激。
编辑:这是编辑/添加的内容
这是我使用的代码,grazingAltitudeLocation
返回起点,rayEllipsoid
返回未定义。
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
var globe = scene.globe;
var ellipsoid = scene.globe.ellipsoid;
var primitives = scene.primitives;
globe.depthTestAgainstTerrain = true;
var cesiumTerrainProviderMeshes = new Cesium.CesiumTerrainProvider({url : '//cesiumjs.org/stk-terrain/tilesets/world/tiles'});
scene.terrainProvider = cesiumTerrainProviderMeshes;
var startLon = -117.69;
var startLat = 35.69;
var startElv = 20000;
var endLon = -120.0417;
var endLat = 39.0917;
var endElv = 0;
var startCart = Cesium.Cartographic.fromDegrees(startLon, startLat, startElv);
var start = ellipsoid.cartographicToCartesian(startCart);
var endCart = Cesium.Cartographic.fromDegrees(endLon, endLat, endElv);
var end = ellipsoid.cartographicToCartesian(endCart);
var ray = new Cesium.Ray(start, end);
var intersection = Cesium.IntersectionTests.grazingAltitudeLocation(ray, ellipsoid);
var intersection2 = Cesium.IntersectionTests.rayEllipsoid(ray, ellipsoid);
var point = Cesium.Ray.getPoint(ray, intersection2.start);
最佳答案
我认为你应该这样做 picking on Globe ,不在椭球上。希望这会有所帮助:
function pickGlobeIntersection(viewer, p0, p1) {
//all positions are in Cartesian3
var direction = new Cesium.Cartesian3();
Cesium.Cartesian3.subtract(p1, p0, direction);
Cesium.Cartesian3.normalize(direction, direction);
var ray = new Cesium.Ray(p0, direction);
var hitPos = viewer.scene.globe.pick(ray, viewer.scene);
if ((hitPos !== undefined) && (hitPos !== null)) {
return hitPos;
} else {
return null;
}
}
问候
关于cesiumjs - Cesium 中的折线与地形相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25373300/
我的页面上有两个实体;卫星及其“地面位置”,两者都随着时间的推移在铯中移动。我想用一条随它们一起移动的直线将两者连接起来。 CZML Showcase如果您使用 CZML 文件,似乎会演示类似的功能,
我有一些实体,它们的位置是使用 CallbackProperty 函数设置的。 cesium.renderPolygon = function(mapContext, polygon, existin
我需要在Cesium中创建一个setZoom()函数。为此,我相信我需要评估当前的缩放,以便我可以决定是否必须使用 zoomIn 或 zoomOut 来显示用户要求的内容。 有谁知道使用Cesium时
我目前正在开发一个使用 Cesium Viewer 的应用程序。我需要能够显示将动态更新的形状集合。我无法理解执行此操作的最佳方法。 我目前正在使用实体并使用 CallbackProperties 来
默认情况下,铯折线遵循两点之间的地球曲率。如何制作高于地面的弧线,如本例所示? http://armsglobe.chromeexperiments.com/ 最佳答案 这是一个在实体位置上使用插值算
我使用以下代码创建了一个 Cesium 标签: var label: Cesium.LabelGraphics = new Cesium.LabelGraphics({
我想使用键盘快捷键动态移动模型。我找不到相关文章。 所以现在,我正在尝试通过单击移动模型。当点击模型时。模型必须朝一个方向移动(在刻度上增加值 1)。找到下面的沙堡代码。 var selectedMe
我想问一个关于在线 kml 文件到 czml 文件转换器的问题,因为我想将我的 kml 文件转换为 czml 文件,以便在铯 3d 地球仪中使用它作为可点击的地标。请提供该问题的答案。 最佳答案 更新
我完全是 Cesium 的菜鸟,所以请原谅我的愚蠢行为。我正在尝试编写一个应用程序,将位置和方向数据流式传输到 Cesium,实时绘制它以及显示它所在位置的路径。我遇到了实体视觉卡顿的问题,这几乎可以
我想添加一个不总是面向相机的标签。相反,我希望它遵循定义的路径。类似于街道名称在谷歌地图中遵循街道方向的方式(它们并不总是水平的)。 我可以想到 2 种可能的旋转文本实现方式,但没有成功。 那个 La
有没有办法获得 CesiumJS 中给定位置的地面高度?我试过scene.globe.getHeight func 但它返回未定义。 //marker is a point on map. v
Cesium 能够制作圆(例如通过创建一个定义了 ellipse 的实体)和弧( polylines )。但我一直无法找到创建部分、填充、圆圈的方法。 我们使用 Cesium 来显示条形图和覆盖在 m
如何删除 cesiumjs 中的折线, var p = this.viewer.entities.add({ polyline: { material: new Cesium.
我正在使用铯,并试图检测折线与地球地形相交的位置。我有一条多段线,它从空中的某个点开始,以一定的角度向地球延伸。 现在我正在使用设定的距离计算终点,所以我有一个起点和终点。我想检测这条折线首先撞击地球
我已经使用网站上的 Collada 转换器将 dae 文件转换为 gltf 文件(我使用的是 Linux,所以我找不到转换前后的调试说明)。当我将模型加载到铯中时,它太暗了。然后我编辑 gltf 文件
我已经编写了一些函数来在 Cesium 中绘制可拖动和静态的点。但是,将它们一起使用时我遇到了一个大问题。 我可以通过在 map 上单击来绘制可拖动的点,然后通过单击和拖动来移动它们。但是,如果我在绘
我想做的是控制一个非实时 Cesium 应用程序的时钟滴答。想象一下有昂贵的代码在运行,而且我想给查看者时间在继续之前加载图 block 。那么如何禁用自动滴答,然后在我的代码准备好时手动调用 tic
因此,我正在根据从另一台服务器获取的 JSON 数据,通过在不同位置显示标记来自定义 Cesium map 。我想做的一件事是创建一个类似 Accordion 的 div 元素来保存可以打开和关闭的字
我们在项目中使用Cesiumjs map 。当我们尝试缩放时,它会缩放到屏幕中心,而不是鼠标位置。 有谁知道怎么解决吗?谢谢 最佳答案 不幸的是,这还没有实现。它位于 Camera Roadmap如i
我和我的团队正在尝试在 Cesium 上开发一个需要圆点和矩形点的应用程序。我们使用 native PointGraphics 来制作圆圈,但正在为矩形创建实体。代码如下所示: var entity
我是一名优秀的程序员,十分优秀!