問題タブ [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 の Point PlaceMark レンダリング可能オブジェクトには、次のスクリーンショットのようにsetLineEnabledを呼び出すことで、Placemark から地形までラインをドロップする機能があります。
私がやろうとしているのは、Tactical Symbol renderable でも機能するこのような行を追加することです。私が最初に考えたのは、PointPlacemarkレンダリング可能オブジェクトからこれを行うためのロジックを借りて、それをAbstractTacticalSymbolレンダリング可能オブジェクトに追加することでした。私はそれを試みましたが、これまでのところ成功していません。
これが私がこれまでに行ったことです:
これを OrderedSymbol クラスに追加しました:
/li>TerrainPoint を計算するように computeSymbolPoints を更新しました
/li>このロジックを追加しました (PointPlacemark.java から取得し、AbstractTacticalSymbol.java に準拠するように更新しました)。lineEnabled を true に設定しているため、デフォルトで線が描画されることに注意してください。
/li>次の呼び出しを drawOrderedRenderable メソッドの先頭に追加しました。
/li>
これは PointPlacemark が地形への線を表示するために行っていることをよく反映していると思いますが、変更を加えてTacticalSymbolsの例を実行すると、次のようになります。
これが私の(試みられた)変更を含むAbsractTacticalSymbolファイル全体です: http://pastebin.com/aAC7zn0p (SOには大きすぎます)
java - ワールドウィンド サーフェス形状と戦術シンボルのレンダリング順序
基本的に、デフォルトでサーフェス シェイプが戦術シンボルの上にレンダリングされるようにしたいと考えています。Worldwind の例で再現された問題を次に示します。
レイヤーを追加する順序に関係なく、戦術シンボルは常にサーフェス シェイプの上にレンダリングされます。これは、形状のレンダリングが異なるためだと思います。
"レイヤーは、レイヤー リストで定義されている順序で表示されます。(ただし、レイヤー内の 3D 形状は、近い順に表示されます"
Tactical Symbol を拡張し、 OrderedRenderableインターフェイスを実装し、 makeOrderedRenderable()メソッドをオーバーライドすることで、この問題を解決できる予感がありますが、他のレイヤーを壊さずに目的の機能を実現するためにどの特定の変更を加える必要があるかはわかりません。
worldwind - GlobeBrowserBalloon コントロールの削除
閉じる X のみを保持したいので、GlobeBrowserBalloons から進むボタンと戻るボタンを削除しようとしています。
私はメソッドballoon.removeBrowserControl(AbstractBrowserBalloon.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 PM 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 2016 年 10 月 21 日 2:16:48 PM gov.nasa.worldwind.util.SessionCacheUtils retrieveSessionData SEVERE: http://worldwind20.arc.nasa.gov/mapcache?EXCEPTIONS=applicationのリソースを取得中に例外が発生しました/vnd.ogc.se_xml&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.3.0 java.net.SocketTimeoutException: java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で読み取りがタイムアウトしました。 java.io.BufferedInputStream.read1 の BufferedInputStream.fill (不明なソース) (不明なソース) で、sun.net.www.http.HttpClient.parseHTTPHeader (不明なソース) で java.io.BufferedInputStream.read (不明なソース)。 net.www.http.HttpClient.parseHTTP (不明なソース)、sun.net.www.protocol.http.HttpURLConnection.getInputStream (不明なソース)、java.net.HttpURLConnection.getResponseCode (不明なソース)、gov.nasa.worldwind で。 get.HTTPRetriever.doRead(HTTPRetriever.java:48) で gov.nasa.worldwind.retrieve.URLRetriever.read(URLRetriever.java:368) で gov.nasa.worldwind.get.URLRetriever.call(URLRetriever.java:244) で gov.nasa.worldwind.retrieve.URLRetriever.call(URLRetriever.java:1) で gov.nasa.worldwind.util.SessionCacheUtils.retrieveSessionData(SessionCacheUtils.java:80) gov.nasa.worldwind.util.SessionCacheUtils.getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) で gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) で gov.nasa.worldwind.layers.BasicTiledImageLayer$2 で。実行 (BasicTiledImageLayer.java:812) で java.lang.Thread.run (不明なソース)getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) で gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) で gov.nasa.worldwind.layers.BasicTiledImageLayer$2.run(BasicTiledImageLayer.java:812) で java. lang.Thread.run(不明なソース)getOrRetrieveSessionCapabilities(SessionCacheUtils.java:170) で gov.nasa.worldwind.layers.BasicTiledImageLayer.retrieveResources(BasicTiledImageLayer.java:723) で gov.nasa.worldwind.layers.BasicTiledImageLayer$2.run(BasicTiledImageLayer.java:812) で java. lang.Thread.run(不明なソース)
言うまでもなく、アプリケーションは WMS レイヤーのレンダリングに失敗します。
ブラウザを使用して URL に移動しようとしましたが、接続がタイムアウトしました。
この問題を修正または回避する方法についてのアイデアはありますか?
java - スタンドアロン Java 実行可能ファイルで WorldWind を使用できない
WorldWind Globe を表示し、依存関係の問題が発生し続けるスタンドアロンの Java 実行可能ファイルを作成しようとしています。以下は私のコードです:
これは、Maven プロジェクトの私の pom ファイルです。
問題なく NetBeans で実行できますが、Maven 用の Shade プラグインを使用して NetBeans の外部で実行可能ファイルを実行すると、次のエラーが発生します。
なぜこれが起こっているのですか?Shade プラグインは依存関係を 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 => deprecatedの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 ユーザー ガイド ページでは、サポートされているライブラリ パス変数の概要が説明されています 。
3) GlueGen および JOGL ネイティブ バイナリ JAR ファイルをアプリケーションのワークスペースから削除します。JOGL は、ライブラリ パスからロードする前にネイティブ バイナリ JAR ファイルを使用しようとするため、これらのファイルをアプリケーションと共にデプロイしないでください。
4) 実行時に、JVM 引数 -Djogamp.gluegen.UseTempJarCache=false を指定します。
World Wind Java SDK 2 をダウンロードしてサンプルを開始 => 動作しています! だから私は自分のプロジェクトでrun-demo.batを使用しようとし、パスなどを変更しました。=>動作していません
/li>次の解決策で(なぜこのJava OpenGL(JOGL)プログラムが実行されないのですか?
Caused by: java.lang.ClassNotFoundException: javax.media.opengl.awt.GLJPanel
)のようないくつかのチュートリアルを見つけるために検索しました=>クラスパスが正しく設定されていても(期待どおり)、まだエラーが発生しますすでに JOGL jar ファイルを使用してファイルをコンパイルしているため、実行時にクラスパスにこれらのファイルがあることを確認する必要があります。
概要:
NASA World Wind Java 2 SDK のサンプル プロジェクト (適切に構成された) があるかどうか知っている人はいますか? Github リポジトリ ( https://github.com/NASAWorldWind/WorldWindJava ) は、再利用に有効なプロジェクトを提供していません。
私の目標は、最小限、完全、かつ検証可能な例を作成することです (そしてもちろん後でコミュニティに提供することもできます) 。
おそらく問題を解決するのは非常に簡単ですが、しばらくすると、おそらく失敗状態に陥ります...
java - Worldwind SurfaceImage ディープ/バッチ ピッキング
WorldWind を使用していて、同じレイヤー内の複数の表面画像を「選択」しようとしていますが、なぜ機能しないのか理解できません。
私はこれを呼び出すという印象を受けました:
同じレイヤーで複数のレンダリング可能オブジェクトを選択できるようにします。これは、SurfaceImage 以外のすべてのケースで機能するようです。また、ロードした SurfaceImage を別のレイヤーに強制すると、期待どおりに機能することにも気付きました。
これは、これをテストするために使用しているコードです。
これらは、これをテストするために使用してきた、互いの上に重ねられた 2 つの geotiff です。両方の geotiff を 1 回左クリックすると、SelectListener の println が「3」を出力することを期待します。(geotiff を 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
たら、まったく表示されないようです。右クリックしても何も表示されません。BorderLayout
これは、World Wind ディスプレイの上のコンポーネントにメニューをアタッチできるため (WWD は中央にあり、他のコンポーネントはその北にあります)、代わりにメニューを非表示にするヘビーウェイトと軽量の Java コンポーネントの問題ではないと思います。 World Wind ディスプレイのスペースに隠れることなく喜んで入ります。安全のために、私が行ったメインクラスの静的イニシャライザトップに と を設定しJPopupMenu
ましsetLightWeightPopupEnabled(false)
たJPopupMenu.setDefaultLightWeightPopupEnabled(false)
World Wind ディスプレイを含む にMouseListener
接続してテストを行いましたが、どのイベントもトリガーされません。したがって、 を に追加するのではなく、 wwd オブジェクトの特定のサブコンポーネントに追加する必要があると考えられます。wwd オブジェクト自体には、ポップアップ メニューを追加するためのメソッドがないようです。また、wwd のメソッドに「getGLCanvas」のようなものはありません。ここで正しい軌道に乗っている場合、どのコンポーネントにメニューを追加する必要がありますか?また、そのコンポーネントにアクセスするにはどうすればよいですか?JPanel
MouseListener
JPopupMenu
JPanel
私の質問は非常に単純です。どうすればJPopupMenu
World Wind ディスプレイに入ることができますか?
第二に、この質問は、ディスプレイに を表示することについても同じことを求めてMouseListener
いますが、それに対する答えは、ディスプレイに を表示することの答えから外れると思いJPopupMenu
ます。
以下は、私が挿入した World Wind テンプレート コードとそれに加えた変更です。他の場所で別のクラスが を使用して、World Wind 表示を含む をアプリケーションのユーザー インターフェイスgetComponent()
に追加します。JPanel
なんらかの意味がある場合に備えて、コメントアウトしたデフォルトの World Wind のものを残しました。レイヤー名の String[] のループは、マップと単位スケールのみを簡単に表示するための方法にすぎませんでした。JPopupMenu
コードはコンストラクターの途中にあります。乱雑なコードで申し訳ありませんが、最良の支援のために、そのままの状態で表示する必要があると思いました。
kml - KML 動線の方向
NASA WorldWind と Google Earth を使用してきました。アイコンにKML の目印を使用しています。KML でヘッダー/リーダー線を複製したいと考えています。DIRECTION_OF_MOVEMENT ラインが WorldWind で 2525 シンボルの実装にどのように機能するかに似たリーダー ラインが必要です。基本的に、線はオブジェクトが移動している方向を示し、添付のスクリーンショットの黒い線で示されているように、マップの向きに関係なく、その方向を指し続けます。Google Earth で KML を使用してこれを複製するにはどうすればよいですか?