Frickelblog

30. July 2009

erste Schritte mit Nasa World Wind

Filed under: Java — frickelblog @ 15:19
Tags: , ,

Photos auf einer Karte anzuzeigen kann so schwer nicht sein möchte man meinen. Anbindung an Google Maps oder Google Earth und gut is.

Will man diese Kartenanzeige jetzt noch in ein Java-Programm integrieren, sieht’s schon anders aus. Google Maps wäre kein Problem, wenn denn JWebPane schon fertig wäre. Ist es aber nicht. Also bleiben derzeit nur noch 2 Methoden: Nasa WorldWind einbinden oder JXMapViewer benutzen.

Der erste Test mit Nasa WorldWind ging erheblich schneller als erwartet: Das NetBeansWiki beschreibt die wenigen nötigen Schritte.

  1. Nasa Worldwind Java SDK herunterladen
  2. In Netbeans eine Library mit den Dateien worldwind.jar, jogl.jar und gluegen-rt.jar anlegen
  3. die Library zum Projekt hinzufügen
  4. Ein JFrame-Form erstellen
  5. (optional einige JavaBeans in die Palette des GUI Managers hinzufügen)
  6. WorldWindowGLCanvas in den JFrame ziehen
  7. folgende Imports hinzufügen:
    import gov.nasa.worldwind.*;
    import gov.nasa.worldwind.avlist.AVKey;
  8. und folgenden Code unter den initComponents() Aufruf des Konstruktors:
    Model m = (Model) WorldWind.createConfigurationComponent(AVKey.MODEL_CLASS_NAME);
    worldWindowGLCanvas1.setModel(m);
  9. In den Projekteigenschaften noch folgende JVM-Property setzen: -Djava.library.path=c:\pfad\zum\nasaworldwind\sdk\
  10. fertig!

Die ganze Klasse sieht dann so aus:

import gov.nasa.worldwind.*;
import gov.nasa.worldwind.avlist.AVKey;

public class NWW extends javax.swing.JFrame {

    public NWW() {
        initComponents();
        Model m = (Model) WorldWind.createConfigurationComponent(AVKey.MODEL_CLASS_NAME);
        worldWindowGLCanvas1.setModel(m);
    }

    private void initComponents() {
        worldWindowGLCanvas1 = new gov.nasa.worldwind.awt.WorldWindowGLCanvas();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Nasa World WInd");
        setMinimumSize(new java.awt.Dimension(640, 480));
        getContentPane().add(worldWindowGLCanvas1, java.awt.BorderLayout.CENTER);
        pack();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NWW().setVisible(true);
            }
        });
    }
    private gov.nasa.worldwind.awt.WorldWindowGLCanvas worldWindowGLCanvas1;
}

Nützliche Links:

About these ads

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Theme: Customized Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: