NASA World Wind Java SDK Tom Gaskins NWW Technical Director http://worldwind.arc.nasa.gov

TS-3489

2007 JavaOneSM Conference | Session TS-3489 | Today’s Agenda

Build an Application • Deploy with Java™ Web Start Build an Applet • (Deploy with Brute Force) Describe the Architecture and API What You Need and Where to Get It Q&A

2007 JavaOneSM Conference | Session TS-3489 | 2 Today’s Goal

Able to Create 3D Geo-Info Applications and Applets with NASA World Wind for Java™ platform

2007 JavaOneSM Conference | Session TS-3489 | 3 Applet

2007 JavaOneSM Conference | Session TS-3489 | 4 Applications

Multi-Frame

Single Frame

2007 JavaOneSM Conference | Session TS-3489 | 5 Big Brother

2007 JavaOneSM Conference | Session TS-3489 | 6 Today’s Agenda

Build an Application—Live Build an Applet—Live Describe the Architecture and API What You Need and Where to Get It Q&A

2007 JavaOneSM Conference | Session TS-3489 | 7 Build an Application—Live

2007 JavaOneSM Conference | Session TS-3489 | 8 Build an Application—Steps Add a WorldWindowGLCanvas to a JFrame:

Class MyWorldWindFrame extends Jframe { WorldWindowGLCanvas wwc = new WorldWindowGLCanvas(); this.getConentPane().add(wwc, BorderLayout.CENTER); } Listen for World Wind Events: wwc.addSelectListener(new SelectListener() { public void selected(SelectEvent event) {…} });

2007 JavaOneSM Conference | Session TS-3489 | 9 World Window and View Interfaces

WorldWindow • View • set/getModel(Model) Fields • set/getView(View) Position, direction, fov, altitude, heading, pitch, • getSceneController(…) roll, … • pick(java.awt.Point) Actions • set/getInputHandler(…) apply() • add/remove listeners: goto(lat/lon/elev/altitude) – PositionListener project(Point 3Dpoint) – SelectListener Compute – RenderingListener horizon() • repaint() positionFromScreenPoint(…) rayFromScreenPoint(…) …

2007 JavaOneSM Conference | Session TS-3489 | 10 Today’s Agenda

Build an Application Build an Applet Describe the Architecture and API What You Need and Where to Get It Q&A

2007 JavaOneSM Conference | Session TS-3489 | 11 Build an Applet—Live

2007 JavaOneSM Conference | Session TS-3489 | 12 Applet.html • World Wind Java - Applet demo 3 Up

2007 JavaOneSM Conference | Session TS-3489 | 13 Today’s Agenda

Build an Application Build an Applet Describe the Architecture and API What You Need and Where to Get It Q&A

2007 JavaOneSM Conference | Session TS-3489 | 14 World Wind Architecture

2007 JavaOneSM Conference | Session TS-3489 | 15 World Wind System Architecture

2007 JavaOneSM Conference | Session TS-3489 | 16 World Wind API Features • Componentry to Embed in Applications • An Application’s Slave • Replaceable and Extensible

● Interface Emphasis • Independent • Cross-Toolkit (Swing, SWT, …) • Does the Hard Stuff • Dynamic Retrieval • Dynamic Image Selection • Uses OpenGL® Collaboratively with Application • Follows Modern Best Practices

2007 JavaOneSM Conference | Session TS-3489 | 17 Today’s Agenda

Build an Application Build an Applet Describe the Architecture What You Need and Where to Get It Q&A

2007 JavaOneSM Conference | Session TS-3489 | 18 Where Is It?

• http://worldwind.arc.nasa.gov/java • Root of All Information and Bits

● Source Code

● Binaries and Installers

● Documentation Link

● Forums Link

● Pretty Pictures

2007 JavaOneSM Conference | Session TS-3489 | 19 Summary

• World Wind is a Component—Swing, SWT, etc. • Single Binary for Mac OS X, Windows, Linux, … • Open Source, Free and Unencumbered • Architecture Designed for Extension and Replacement • Use in Application or Applet • Collaborative Use of Java™ Binding for the OpenGL® API/OpenGL®

2007 JavaOneSM Conference | Session TS-3489 | 20 Progress and Future

• We are here: E F • What we Plan (other than Faster and Prettier) • More data available • Planets, Moons, Stars • Weather, Sensor, Satellite, Time-series • More data formats natively supported • Useful Components • Layer manager, Animation player, D&D, UI helpers • RSS Feed support • Scripting/Extension for JavaScript™ technology and Python • Eclipse and NetBeans™ RCP integration

2007 JavaOneSM Conference | Session TS-3489 | 21 Acknowledgments • NASA • United States Department of Energy • (www.sun.com) • Microsoft (www.microsoft.com) • I-cubed (www.i3.com) • The Team • Patrick Hogan—Visionary Leader • Dave Collins, Lado Garakanidze, Tom Gaskins, Chris Maxwell, Randy Kim, Vick Kelkar • Ken Russell

2007 JavaOneSM Conference | Session TS-3489 | 22 Q&A Tom Gaskins Ken Russell

2007 JavaOneSM Conference | Session TS-3489 | 23 NASA World Wind Java SDK Tom Gaskins NWW Technical Director http://worldwind.arc.nasa.gov

TS-3489

2007 JavaOneSM Conference | Session TS-3489 |