问题标签 [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 - 将 WorldWindowGLJPanel 重新添加到 JFrame 会导致 GL 视口计算错误
如果我将 WorldWindowGLJPanel 的实例添加到我的 JFrame 中,然后将其删除并再次添加,则面板的 GL 视口将重新计算为比可用空间小得多的 Rectangle。尺寸似乎始终为 116x26。这意味着框架变成了大部分空白,只有一小块 WorldWind 面板显示在框架的左下角。调整框架大小似乎会重置视口,但有没有办法以编程方式重置视口?
java - 从符号到地形的 Worldwind 线
Worldwind 的 Point PlaceMark 可渲染具有通过调用setLineEnabled将线从 Placemark 下拉到地形的功能,如下图所示:
我想要做的是添加一条这样的线,它也适用于可渲染的战术符号。我的第一个想法是从PointPlacemark可渲染对象中借用执行此操作的逻辑,并将其添加到AbstractTacticalSymbol可渲染对象中。我已经尝试过了,到目前为止我一直没有成功。
这是我到目前为止所做的:
将此添加到 OrderedSymbol 类:
/li>更新了 computeSymbolPoints 以计算地形点
/li>添加此逻辑(取自 PointPlacemark.java 并更新以符合 AbstractTacticalSymbol.java)。请注意,我已将 lineEnabled 设置为 true,因此默认情况下它应该画线。
/li>将此调用添加到 drawOrderedRenderable 方法的开头:
/li>
我相信这密切反映了 PointPlacemark 正在做什么以使线到地形出现,但这是我在运行TacticalSymbols示例时得到的结果:
这是带有我(尝试的)更改的整个 AbsractTacticalSymbol 文件:http://pastebin.com/aAC7zn0p ( 对于 SO 来说太大了)
worldwind - 删除 GlobeBrowserBalloon 控件
我正在尝试从 GlobeBrowserBalloons 中删除前进和后退按钮,因为我只想保留关闭的 X。
我知道该方法是balloon.removeBrowserControl(AbstractBrowserBalloon.BrowserControl browserControl);
BrowserControl 的构造函数参数是(String action, Offset offset, Object imageSource)
我的问题是,我在 BrowserControl 的构造函数中放了什么?我不熟悉 action 和 imageSource 是什么。
java - World Wind Java 无法检索 WMS 资源
我已经下载了 WorldWindJava SDK 并运行了 HelloWorldWind 示例。但是我每次都会收到以下错误:
2016 年 10 月 21 日下午 2:16:48 gov.nasa.worldwind.util.SessionCacheRetrievalPostProcessor 运行严重: http ://worldwind20.arc.nasa.gov/mapcache?EXCEPTIONS=application/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE 检索失败=WMS&VERSION=1.3.0 Oct 21, 2016 2:16:48 PM gov.nasa.worldwind.util.SessionCacheUtils retrieveSessionData 严重:检索 http://worldwind20.arc.nasa.gov/mapcache?EXCEPTIONS=application的资源时出现异常/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0 java.net.SocketTimeoutException:在 java.io 的 java.net.SocketInputStream.read(Unknown Source) 处的 java.net.SocketInputStream.socketRead0(Native Method) 处读取超时。 BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun。 net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at gov.nasa.worldwind。 gov.nasa.worldwind.retrieve.URLRetriever.read(URLRetriever.java:368) 上 gov.nasa.worldwind 上的retrieve.HTTPRetriever.doRead(HTTPRetriever.java:48)。在 gov.nasa.worldwind.retrieve.URLRetriever.call(URLRetriever.java:1) 在 gov.nasa.worldwind.util.SessionCacheUtils.retrieveSessionData(SessionCacheUtils.java:80) 的检索.URLRetriever.call(URLRetriever.java:244)在 gov.nasa.worldwind.util.SessionCacheUtils.getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) 在 gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) 在 gov.nasa.worldwind.layers.BasicTiledImageLayer$2。在 java.lang.Thread.run 运行(BasicTiledImageLayer.java:812)(未知来源)getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) at gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) at gov.nasa.worldwind.layers.BasicTiledImageLayer$2.run(BasicTiledImageLayer.java:812) at java。 lang.Thread.run(未知来源)getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) at gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) at gov.nasa.worldwind.layers.BasicTiledImageLayer$2.run(BasicTiledImageLayer.java:812) at java. lang.Thread.run(未知来源)
不用说,应用程序无法渲染任何 WMS 层。
我尝试使用浏览器导航到 URL,但连接超时。
关于如何解决此问题或解决此问题的任何想法?
java - 无法在独立 Java 可执行文件中使用 WorldWind
我正在尝试创建一个独立的 Java 可执行文件来显示 WorldWind Globe 并不断遇到依赖问题。下面是我的代码:
这是我的 Maven 项目的 pom 文件:
我可以在 NetBeans 中毫无问题地执行此操作,但是第二次我使用 Shade Plugin for Maven 并在 NetBeans 之外运行可执行文件时出现以下错误:
任何想法为什么会发生这种情况?我认为 Shade Plugin 将依赖项打包在 jar 中,以便它可以在 IDE 之外工作?任何帮助将不胜感激。我正在使用 WorldWind 2.0 和 Java 8。
java - World Wind Java SDK 2.0 Netbeans 8 MCVE 项目
在花费时间研究并遵循教程/建议之后,我仍然无法在32 位 Windows 7机器上使用Netbeans 8中的NASA World Wind SDK 2开始我的项目。
由于 World Wind SDK 2.0 更新至 JOGL 2.3x,大部分教程已弃用且不再有用。
到目前为止我尝试了什么:
- 尝试了旧方法(http://wiki.netbeans.org/HelloWorldWindJavaSDK)=> 不再起作用(我采用了新的 Jogl-all.jar 方法)。
- 在没有任何有用帮助的情况下阅读官方 WW 论坛 ( http://forum.worldwindcentral.com/showthread.php?20383-How-to-setup-WWJ ) 中的如何设置 WWJ线程。
- 在 NetBeans IDE http://www.worldwindcentral.com/wiki/WWJava_in_NetBeans_IDE => 已弃用的WWJava 上查看了 Wiki 。
由于注释(https://goworldwind.org/releases/ )而阅读了README.txt => 遵循这些说明但没有成功
注意使用 JOGL 库而不使用本地二进制文件的默认运行时提取。这是通过修改 World Wind 的 JOGL 发行版以直接从库路径加载本机二进制文件而不是动态使用本机二进制 JAR 文件来实现的。以下是有关如何实现此功能的说明:
1) 提取所需平台的 GlueGen 和 JOGL 本机二进制 JAR 文件。这些 JAR 文件遵循命名模式 gluegen-rt-natives-PLATFORM.jar 和 jogl-all-natives-PLATFORM.jar
2) 将提取的本机二进制文件放在程序的工作目录或指定为库路径的位置。以下 JOGL 用户指南页面概述了支持的库路径变量: https ://jogamp.org/jogl/doc/userguide/index.html#traditionallibraryloading
3) 从应用程序的工作区中删除 GlueGen 和 JOGL 本机二进制 JAR 文件。JOGL 在从库路径加载之前尝试使用本机二进制 JAR 文件,因此这些文件不能与应用程序一起部署。
4)运行时,指定JVM参数-Djogamp.gluegen.UseTempJarCache=false
下载 World Wind Java SDK 2 并启动示例 => 它正在工作!所以我尝试在我的项目中使用run-demo.bat并更改路径等 => 它不起作用原因
/li>使用以下解决方案搜索
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.awt.GLJPanel
找到几个教程,例如(为什么这个 Java OpenGL (JOGL) 程序不能运行? )=> 即使类路径设置正确(如我所料),我仍然收到错误由于您已经使用 JOGL jar 文件编译了该文件,因此您只需要确保在运行时您的类路径中有这些文件:
概括:
有人知道 NASA World Wind Java 2 SDK 是否有示例项目(配置良好)?Github 存储库 ( https://github.com/NASAWorldWind/WorldWindJava ) 不提供对重用有效的项目。
我的目标是拥有(当然后来为社区提供)一个最小的、完整的和可验证的示例。
可能很容易解决我的问题,但花了一些时间后,我可能陷入了失败状态......
java - Worldwind SurfaceImage Deep/Batch Picking
我正在使用 WorldWind 并尝试在同一层中“挑选”多个表面图像,但不明白为什么它不起作用。
我的印象是这样称呼:
将使我能够在同一层中选择多个可渲染对象。这似乎适用于 SurfaceImage 以外的所有其他情况。我还注意到,如果我将加载的 SurfaceImage 强制放入不同的层,它会按预期工作。
这是我用来测试的代码:
这些是我一直用来测试的 2 个相互叠加的 geotiff。当我单击两个 geotiff 时,我希望 SelectListener 上的 println 打印出“3”。(我已将 geotiffs 上传到此处提供的 zip 中)
您将看到这些的区域位于旧金山,请参见屏幕截图:
java - 在 World Wind 显示中获取 JPopupMenu
JPopupMenu
我需要在 World Wind 显示中添加右键单击。World Wind 显示在JPanel
. 我几乎只是ApplicationTemplate.AppPanel
从 World Wind 的示例ApplicationTemplate
类中复制了内部类的成员变量和方法,将其粘贴到我需要 WW 显示的 GUI 中,并将this.add(component)
复制代码的引用更改为myJPanel.add(component)
.
除了缺少弹出菜单之外,它工作得很好;我在我的应用程序中嵌入了一个 World Wind 显示器,并从我的应用程序对话框中控制它。
加入JPopupMenu
世界风显示后JPanel
,好像根本不显示。我右键单击,没有弹出任何内容。我不认为这是隐藏菜单的重量级与轻量级 Java 组件问题,因为我可以将菜单附加到 World Wind 显示上方的组件(WWD 位于BorderLayout
CENTER,其他组件位于其 NORTH)而不是菜单会很高兴地进入世界风展示的空间而不被它隐藏。为了安全起见,我在我所做的主类的静态初始化程序顶部设置了JPopupMenu
's和setLightWeightPopupEnabled(false)
JPopupMenu.setDefaultLightWeightPopupEnabled(false)
我做了一个MouseListener
附加到JPanel
包含世界风显示的测试,并且没有任何MouseListener
事件被触发。所以我最好的猜测是我不应该将其添加JPopupMenu
到JPanel
wwd 对象的某些特定子组件中,而是应该将其添加到 wwd 对象的某些特定子组件中。wwd 对象本身似乎没有添加弹出菜单的方法,并且我在 wwd 的方法中没有看到类似“getGLCanvas”的东西。如果我在正确的轨道上,应该将菜单添加到哪个组件,以及如何访问该组件?
所以我的问题很简单,或者看起来是这样:我如何JPopupMenu
进入 World Wind 显示器?
其次,这个问题也与MouseListener
在显示器上显示 a 相同,但我认为这个问题的答案将超出JPopupMenu
在显示器上显示 a 的答案。
下面是我插入的 World Wind 模板代码,以及我对它的修改。其他地方的另一个类使用getComponent()
将JPanel
包含 World Wind 显示添加到我的应用程序的用户界面。我留下了我注释掉的默认 World Wind 内容,以防万一这很重要。通过图层名称的 String[] 循环只是我轻松仅显示地图和单位比例的一种方式。JPopupMenu
代码位于构造函数的一半。为凌乱的代码道歉,但我认为您应该按原样查看它以获得最佳帮助。
kml - KML 运动线方向
我一直在与 NASA WorldWind 和 Google Earth 合作。我正在为图标使用 KML地标,并且希望在 KML 中复制标题/引线。我想要一个类似于 DIRECTION_OF_MOVEMENT 线在 WorldWind 中的工作方式的引导线,因为它在 2525 符号系统上实现。基本上,这条线表示对象正在移动的方向,并且无论地图的方向如何,它都会保持指向该方向,如所附屏幕截图中的黑线所示。如何在 Google 地球中使用 KML 复制它?