问题标签 [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.
javascript - Cesiumjs缩放到鼠标
我们在项目中使用 Cesiumjs 地图。当我们尝试缩放时,它会缩放到屏幕中心,而不是鼠标位置。
有谁知道如何解决它?谢谢
cesium - 是否有一个通用的 ScreenSpaceEvent 可以捕获所有事件?
为了对特定的空间处理程序做出反应,我通常会这样做 -
此功能仅限于 WHEEL 输入。每次相机改变位置或高度时,我都需要做几件事。我尝试以与上述类似的方式为相机创建一个事件处理程序,然后camera.positionCartographic
在该函数中调用,但无济于事。
Cesium 中是否存在捕获任何运动的事件?
javascript - Cesium:使用自己的 OpenStreetMap 服务器。: '未能获取图像平铺' 错误
按照switch2osm.org 上的指南,我能够让我自己的 OSM tile 服务器运行。
我确实使用 webbrowser 验证了我的 OSM 磁贴服务器的状态。例如在http://localhost/osm_tiles/0/0/0.png我得到小图片 od world。Evertthing 似乎在我的服务器端工作。
连接到在线地图资源的铯也可以正常工作。
当我尝试将 Cesium 连接到本地 OSM 服务器时,会出现问题。在 Firefox 控制台中,我收到此错误:
““发生错误:获取图像瓦片失败 X:1 Y:1 级别:1。” Cesium.js:381:25514 ““发生错误:无法获取图像平铺 X:1 Y:0 级别:1。” Cesium.js:381:25514 ““出现错误:获取图像瓦片 X:0 Y:0 级别:1 失败。” Cesium.js:381:25514 ““发生错误:无法获取图像平铺 X:0 Y:1 级别:1。” 铯.js:381:25514
我被这个问题困扰了几天。搜索网络并没有为我提供任何有用的线索。
这是我正在运行 Cesium 的网页的源代码:
cesium - Cesium 1.7+ 中的异步实体渲染
大家好,
我已经使用 Cesium 工作了一段时间,并且在使用 Primitive Collections 时就开始了。我曾经单击并拖动原始渲染工作,但现在我想升级 Cesium 并继续使用实体。我移动了代码,重构了,可以点击和拖动来绘制形状;但是,在我能够翻转异步标志之前,它会在我移动鼠标时呈现。现在,我无法做到这一点。我尝试将查看器上的“allowDataSourcesToSuspendAnimation”设置为 false,但无济于事。任何帮助将不胜感激。
在我的天真中,我忘记在我的问题中添加代码片段。这是一个时钟滴答事件侦听器,仅在鼠标按下时触发(布尔值设置为 true)
kml - KML 文件渲染问题 - 平滑文本
我们有 KML 文件,其中包含一些非常严格定义的折线(主要用于绘制文本,但不只是用于绘制文本)。当我们将同一个 KML 文件拉入 Cesium(1.6 或 1.7)、OpenLayers 或 GoogleEarth 时,我得到相同的结果:
- Cesium 以非常锯齿状的方式呈现文本。
- OpenLayers 和 GoogleEarth 都可以平滑地渲染文本。
我们已经研究了removeDuplicates()
我们认为负责数据“细化”的方法。如果我们将 EPSILON 设置为更高的值,“文本折线”会很好地呈现。我们可以在removeDuplicatesEpsilon
某处覆盖变量吗?
在removeDuplicates()
方法内部,一旦确定我们至少要删除 1 个点,它看起来就像将每个后续点与列表中的前一个点进行比较。它不应该将每个点与先前接受的点进行比较吗?(与列表中的前一点相反,也可能不包括在内)。
铯代码:
示例 KML -
openlayers-3 - OL3:是否可以使用 openlayers3 在一张地图中添加具有不同投影的不同图层?
我想在一张地图中添加两个不同的图层。A 使用EPSG:4326
投影,而 B 使用EPSG:3857
投影。当我尝试这个时openlayers3
,出现了一些错误。我在ol.View中找不到setProjection之类的功能,好像openlayers3
不支持这个动作。
但是当我使用 Cesium 时,Cesium 支持这一点。如果我必须这样做,我该怎么办openlayers3
?
kml - 如何控制 Cesiumjs 中数据源的可见性?
我想在 cesiumjs 查看器中显示多个数据源,但需要允许用户在任何给定时间选择他们想要查看的数据源。例如,如果我加载一个 kml 和一个 czml 文件,如何隐藏一个并显示另一个?我找不到 cesiumjs 用它的 API 来做这件事的方法。
javascript - cesiumjs折线长度问题
我正在尝试在 CesiumJs 地球上绘制一条折线。这条折线实际上是一个圆圈。这是 currentLine 是一个数组。就像[x1,y1,z1,x2,y2,z2....]
当长度大于 549 或在其他意义上当折线中的点超过 183 时,铯模块会给出错误:
渲染时出错。渲染已停止。TypeError:无法读取未定义的属性“x”类型错误:无法读取 Function.i.subtract 中未定义的属性“x”(/include/Cesium-1.7.1/Build/Cesium/Workers/createGeometry.js:73:6359)在 Function.v.createGeometry (/include/Cesium-1.7.1/Build/Cesium/Workers/createPolylineGeometry.js:60:28125) 在 n (include/Cesium-1.7.1/Build/Cesium/Workers/createPolylineGeometry.js :60:29743) 在 DedicatedWorkerGlobalScope 的 (include/Cesium-1.7.1/Build/Cesium/Workers/createGeometry.js:76:31234)。(包括/Cesium-1.7.1/Build/Cesium/Workers/createGeometry.js:76:30500)
这是代码
请帮助我如何解决这个问题:) 谢谢我想知道是否有任何重复项所以我删除了所有重复项但随后该数组不再是 3 的倍数并且它不被接受为有效的折线:/
javascript - 如何在铯中获得场景变化事件?
我想检测每次相机位置、航向、俯仰或滚动在 Cesium 视图上的变化,以便我可以更新显示这些值的显示。经过一番搜索,我最终发现我可以将事件处理程序添加到小部件的 Scene 对象上的不直观preRender
或事件。postRender
然而,这些事件都连续触发,每秒数百次。我猜他们每个时钟滴答都会发射一次。是否有另一个我可以注册的事件会在地图视图更改后简单地触发?我正在寻找与 Leaflet 的moveend
活动相近的东西preRender
,postRender
不是吗。
如果做不到这一点,有什么方法可以让我得到preRender
或postRender
只有在事情发生实际变化时才开火?
unity3d - Unity 和 Cesium 之间的连接
我计划在Unity和 WebGL Library Cesium之间建立联系。我现在的想法是将地图的特定部分从 Cesium 导出为 GeoTiff-File 并将其导入 Unity 以将其映射到平面上。
但是,我不知道如何做到这一点,有人有想法或其他解决方案在 Unity 中显示来自 Cesium 的地图吗?