问题标签 [cesium]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
175 浏览

dart - 在 Dartium 中使用铯

我正在尝试使用 dart 评估使用 jsinterop 库的 cesium 应用程序。使用 dart2js 一切都可以在常规 chrome 中运行,但 dartium 不会完全加载地图,它会冻结整个选项卡。

有没有办法让 dartium 成功运行铯?

如果您加载 dartium 并转到也冻结的 cesiums 主页:http ://cesiumjs.org/ Cesium 可以在最新版本的原始铬中工作。

Dartium 版本:34.0.1847.0 (264987)

0 投票
2 回答
1303 浏览

javascript - cesium api克隆和开发如何使用requirejs什么是cesium的依赖

我想克隆 cesium git 并更改 javascript 文件。我不想添加缩小文件是 Build/Cesium.js 我想使用单独的 javascript 文件。我的代码

错误:

它说需要 Cesium.js 但我想在开发模式下工作。

0 投票
1 回答
1156 浏览

javascript - Change length of cylinder or extrudedHeight of circle

I'm trying to change the length of a cylinder or the extrudedHeight of a circle when it has been added to the primitives and is shown in the cesium widget/viewer. For example this cylinder:

Because it's added to the primitives array it will be shown in the widget, but after 2 seconds for example I get a notification that the length should be halved (that means set to 50). Is there any way to do this? Simply changing it in cylinderGeometry doesn't seem to do the job.

I kind of have it working by creating a new cylinder with the new height, adding it and removing the old one. This however tends to flicker the cylinder (it's gone for a fraction of a second) before the new one is shown. I fixed this problem by removing the old instance after a set time after the new one is added. This whole solution isn't very elegant and doesn't work very well on devices with a small amount of computing power, hence my search for a better solution.

I don't care if this is achieved using cylinders or extruded circles. If you need any more information don't hesitate to ask in the comments below the question.

EDIT

I implemented the second solution Matthew suggested but after a while of it running perfectly the cylinders stop changing height (which didn't occur when I used my solution. The callback in the interval does get called. Here is some code showing what my new solution is (not working):

0 投票
1 回答
882 浏览

javascript - 从脚本外部调用内部 Cesium 函数

我正在编写一个铯应用程序,我想调用一个清除所有原语的内部铯函数:

当我按下按钮时。我知道 cesium 的内置工具栏按钮,但我想使用我已经拥有的 html 按钮在单击时调用此函数。它位于:

任何帮助,将不胜感激!

0 投票
1 回答
202 浏览

javascript - 改变壁厚铯

我正在使用 Cesium 并且我正在使用 Cesium.WallGeometry 并且我想加厚我的墙壁以使它们在从远处观看时更明显,因为在某些角度墙壁会消失。我似乎唯一能做的就是改变最大和最小高度来加长墙,但没有办法加宽它。任何人都知道我错过的属性函数或修改铯源以改变它的方法吗?我现在正在使用完整的 b-29 版 Cesium。

0 投票
2 回答
3222 浏览

cesium - 铯 CZML:使用 lat long alt

我想这对于真正熟悉 Cesium 的 CZML 文件的任何人来说都是一个简单的问题。我只是想使用铯显示一系列纬度/经度/高度点作为飞行路径。有人能告诉我“位置”标签应该是什么样子吗?

除非我在错误的地方寻找,否则我看不到很多 CZML 的示例。所以很难知道可以使用哪些标签以及如何使用它们(如果你弄错了,Java 控制台不会显示错误)。

在 Cesium 网站上的 Sandcastle CZML 示例中,相关部分如下所示:

如果是两点,为什么有 8 个值?如果是 ECEF 坐标,我预计每点只有三个……

例如,当我尝试这个时,我在控制台中收到一条“未捕获的错误”消息......这不是很有帮助:

根据文档,制图需要 (long, lat, height),其中 long 和 lat 以弧度为单位,高度以米为单位。

0 投票
3 回答
6802 浏览

svg - 如何在 Cesium.js 中绘制自定义动态广告牌

我目前正在将 Cesium 用于地图应用程序,并且我需要为我正在绘制的每个项目都有状态指示器(例如,如果我正在绘制的项目是一架飞机,那么我需要有一个燃料状态指标)。我不能使用 Cesium 的绘图工具来执行此操作,因为它们是使用地理位置绘制的,但我需要我的状态指示器简单地位于广告牌附近,而不是随着用户放大和缩小而远离广告牌。

Cesium 的 CZML 文档指出广告牌的“图像”属性可以采用数据 URI,所以我认为处理这个问题的最简单方法是动态创建一个 SVG 路径并将其嵌入到图像属性中,但是当我这样做时这在铯中,它没有出现。例如,我尝试了这样一个简单的测试:

当那没有出现时,我只尝试了简单的 HTML 和文本值,如下所示:

和:

但那些也没有出现。如果我将 base64 字符串放在数据 URI 中,以及存储在服务器上的图像的路径,我就能显示一个 png,但我确实需要能够动态绘制自定义图像。我不能使用一组具有各种状态的固定预生成图像作为破解(如果有人想要这些细节,我可以解释为什么:))。

有谁知道我在这里做错了什么,或者是否有另一种方法来完成我需要做的事情?

编辑只是想补充一点,我使用的是 Firefox 版本 29,它通常没有问题显示像这样的非编码嵌入式 SVG。以防万一,这也是我尝试简单 HTML 或文本的原因之一。

Edit2我正在使用来自后端的 CZML 流来绘制我的项目,这是一个简单的测试示例,显示了我试图放置图像信息的位置:

如果我在其中放置一个 base64 png 字符串,或者一个静态图像文件的路径,它就可以正常工作。

谢谢!

0 投票
2 回答
545 浏览

mapping - 对带有地理空间映射的库的建议,允许用户将移动对象放置在 2D 地图上

我正在寻找一个库/框架/工具包,它允许我从真实的 GeoSpatial 数据渲染 2D 地图并在 2D 地图上绘制对象。

要求:

  • 地图平铺(当我放大地图时,我想要更详细的图像)
  • 平移(使用鼠标在地图上移动的能力)
  • 阅读各种地理空间图像(卫星、街道等)
  • 能够在地图上绘制对象(基于纬度/经度)并让它们移动。例如,我希望能够将鸟的图像放在地图上并让它正确移动和旋转。
  • 原始形状。如果它内置了绘制线、圆等的能力,那就太好了。
  • 复杂的绘图。例如,我想画一个指南针,让它显示小鸟当前航向的航向。
  • 鼠标输入。我希望能够右键单击地图并显示上下文菜单。我想单击并按住我在地图上绘制的形状并轻松拖动它。

我看过的内容:

  • OpenSceneGraph 与 osgEarth。这很棒,可以满足我的要求,但速度很慢,我不得不做很多奇怪的事情才能让事情正常工作(尤其是在地图上拖动对象时)。
  • Cesium:看起来很有前途,但有点慢,我需要它作为桌面应用程序工作。我在网上看到有人设法在 Qt 的 Webkit 中使用 Cesium,但我不确定我是否愿意冒这个风险。

编辑:

  • 如果可能的话,我真的很想远离基于 Web 的框架。

http://imgur.com/52DaJtQ 这是我想要实现的原始图片。飞机图标应该移动,度数圈也随之移动。我希望能够拖动绿色航点并在移动航点时重新绘制线条。红色传感器足迹应根据飞机的视野进行调整。 http://imgur.com/52DaJtQ

0 投票
1 回答
2393 浏览

javascript - Cesium:如何在哥伦布视图中使用 LookAt 查看一组坐标?

在哥伦布视图中如何使用 LookAt 查看一组坐标?此方法适用于 3d 或全球视图,但在哥伦布视图中,坐标不能正确转换,因为它应该将我发送到美国,但实际上将我发送到非洲海岸。我怎样才能让它在哥伦布视图中工作?

可以在这里重新创建问题 https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html

固定视图有效,但我的视图是固定的:

0 投票
1 回答
2215 浏览

cesium - 铯中与地形的折线相交

我正在使用铯,并试图检测折线与地球上的地形相交的位置。我有一条折线,它从空中的某个点开始,以某个角度向地球绘制。

现在我只使用设定的距离计算终点,所以我有一个起点和终点。我想检测这条折线首先到达地球表面的位置并在该点停止绘制它。例如,如果有一座高山,我不希望线路在山的另一边继续。

我尝试了几种不同的方法IntersectionTests,特别是grazingAltitudeLocationandrayEllipsoid但没有任何运气。我一直在用我的折线的起点和终点创建一条射线,然后viewer.scene.globe.ellipsoid在函数中使用它作为椭圆体。我不断将起点作为交点返回。

有谁知道我做错了什么,或者提出了不同的方法来做到这一点?任何帮助将不胜感激。

编辑:这是编辑/添加的内容

这是我使用的代码,grazingAltitudeLocation返回起点并rayEllipsoid返回未定义。