问题标签 [worldwind]
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.
java - 在 World Wind 中高效渲染大量多边形
我有大量的多边形,我想在世界风上渲染它们。所以我使用他们的 Polygon 类如下:
它适用于小型数据集,但是当多边形数量增加(~45k)时,它会耗尽内存(4GB),或者数量较少时运行缓慢。有人可以建议一些技术来有效地渲染如此大的数据集。谢谢,
javafx - 如何调整 WorldWind 面板的大小?
我想把 aWorldWindowGLJPanel
放到一个窗格中,我想让它 resizable,但我不能,即使我调用resize
或setSize
方法。
这就是我正在做的事情:
然后我用它wwdPane
来显示世界风。
我希望我world wind panel
拥有包含它的窗格的大小,并且我想让它world wind panel
调整大小。
我想过用 a给 my world wind panel
of my的大小,然后将我的 worldwindpanel 的大小与我的窗格绑定,但该功能不起作用。pane
setSize(PaneDimenson)
setSize
编辑:我找到了一个替代解决方案,不使用窗格,而是直接使用 swingNode,调整大小现在是自动的。但是如果你想使用一个窗格仍然有问题,你不得不使用一个组。
algorithm - 在 NASA 世界风上渲染本地 DEM
我正在尝试在 World Wind 上渲染本地高程数据。然后使用world wind的tessellation算法对数据进行tessellation,渲染到地球仪上。我知道 LocalElevationModel。我能够使用这个存储一个 DEM 文件:
我可以通过 localElevation 数据中的 max,min lat 日志使用 lookupElevation 方法访问此模型。但我不知道如何继续前进。我研究了 RectangularTessellator 类,但不明白如何使用它。关于我如何做到这一点的任何线索?
PS:我正在查看他们的源代码,但无法理解很多场景。所以我想了解更多。
PPS:如果不可能,有人可以指导我使用易于实现和优化的地形渲染算法。它支持生成的混乱的各种 LOD。
谢谢,
colors - 在 jogl 中使用 VAO 应用颜色
我正在尝试在 jogl 中为我的多边形着色。我将顶点存储在一个数组中,一个三角形顺序的索引数组和一个颜色数组。代码如下,但我面临的问题是三角形是白色的,而不是颜色缓冲区中的颜色。
我正在 NASA 世界风球上进行此渲染。但我认为这不会引起任何问题。有人可以帮我解决问题吗?我坚持了一段时间。
谢谢,
javafx - 如何在 WorldWind 中绘制具有高程表示的线
我想用高程表示在地球上画一条线,如下所示:
我知道我可以使用折线来表示一条线,但是如何填充线下方的空间?
java - Java WorldWind:翻译全球
我正在广泛使用 Java WorldWind,并且很难通过 3d 渲染实现更多功能。起初,我在使用 zoom 和BasicOrbitView时遇到了巨大的困难,因为 zoom 实际上会改变视点高度,从而改变地平线,因此不是缩放。我使用FOV 参数解决了这个问题。减小此参数会执行真正的缩放,因为可视化对象仅通过类位变换进行修改。我解释说,为了让我知道隐藏在“缩放”或“翻译”等词后面的细节水平。
现在我有关于“翻译”的第二个问题:我想沿着屏幕 X 和 Y 轴平移整个地球,而不改变地平线或其他任何东西。目标是结合 FOV 变化和平移变化来放大一些地球边缘。
可以使用滚动和俯仰缩放某些地球边缘,条件是边缘位于屏幕上,禁止北极朝上,例如在赤道上的地球边缘缩放(如果不清楚,我将提供插图) . 所以这次尝试没有成功。我在 BasicOrbitView.setOrientation 方法上做了很多工作,但没有成功。
我还尝试修改 View 后面的 OpenGL 视图矩阵,尝试将其与描述翻译的 4x4 矩阵相乘,但未成功(在 worldwind 子例程期间执行崩溃)。
您对如何在 worldwind 中实现该翻译有想法吗?
java - RayCastingSupport.intersectRayWithTerrain 总是返回 null
我使用自己的交互方法,因为我将 NASA WorldWind 嵌入 JavaFX 而不是 Swing。视图在 FXML 中定义如下:
控制器属性:
WW初始化代码:
从 JavaFx 初始化代码:
交互类:
Interactions.getPositionFromScreenPoint
从 FX 鼠标处理程序调用。
问题是:RayCastingSupport.intersectRayWithTerrain()
在我从世界的球形表示切换到平面表示后,总是返回 null 。
java - 在 World Wind 中单击时禁用地球运动
我试图在 World Wind 中通过鼠标单击来禁用地球的移动。我希望能够做到:
whereMyMouseMotionListener
消耗所有的鼠标事件。这不起作用,所以我必须这样做:
是否预期消耗的鼠标事件仍应到达gov.nasa.worldwind.awt.AWTInputHandler
侦听器?
更新: WorldWindowGLCanvas
只是打电话addMouseMotionListener()
,java.awt.Component
所以显然我不明白消费事件是如何工作的。
更新 2:尽管与 Swing 共享接口,但调用WorldWindowGLCanvas.removeMouseMotionListener()
withAWTInputHandler
作为参数将阻止所有其他MouseMotionListener
s 接收事件。AWTInputHandler
应该使用add 和 remove 方法。
java - PointPlacemarks 的绘制顺序
有没有办法修复 World Wind 中 PointPlacemarks 的绘制顺序?
即使在地标示例中,地标 B和音频地标的顺序也可以通过在某些缩放级别上移动鼠标来改变:
到目前为止,我已经尝试过:
- 将 PointPlacemarks 添加到单独的图层
- 使用
RenderableLayer.setRenderables
而不是RenderableLayer.addRenderable
- 世界风论坛上的相关问题
java - Java WorldWind:如何在 DragEvent 上访问 AnalyticSurface
我正在广泛使用 Java worldwind 来在矩形扇区上显示数据的应用程序。我希望能够将这些数据拖到全球。如通过BasicDragger演示的那样,此类行为已在 WorldWind 中针对SurfaceCircle(实现Movable)等形状实现。
我正在尝试为AnalyticSurface实现这种行为(不实现可移动)。问题是DragSelectEvent .getTopObject 向我返回了一个名为AnalyticSurface.ClampToGroundSurface的受保护静态类,而我的 AnalyticSurface 没有公共访问器。
总结一下:我创建了一个对象并在 3d 地球渲染中显示它,并且在此图形表示上启动的拖动事件返回给我一个对象,该对象没有对我自己的对象的公共访问器,因此无法根据鼠标行为对其进行修改。
这似乎是 WorldWind 方面的架构错误。不使用反射,有没有办法访问我自己的对象链接到我的拖动事件?