NASA World Wind Java SDK 3D Earth in Your Applications and Web Pages Tom Gaskins, NWW Technical Manager Rick Brownrigg, NWW Software Engineer ID#, TS-5523
Dec 26, 2015
NASA World Wind Java SDK3D Earth in Your Applications and Web Pages
Tom Gaskins, NWW Technical Manager
Rick Brownrigg, NWW Software Engineer
ID#, TS-5523
2008 JavaOneSM Conference | java.sun.com/javaone | 2
Learn how NASA World Wind makes building 3D-Earth applications easy and flexible.
2008 JavaOneSM Conference | java.sun.com/javaone | 3
Agenda
What WWJ is and is not
Unique WWJ Examples
WWJ’s Features and purpose
WWJ’s Architecture
Build a WWJ Application
Deploy a WWJ Applet
Where to get WWJ and help
2008 JavaOneSM Conference | java.sun.com/javaone | 4
WWJ: What It Is, and Is Not
Solves the Geo-browser problem• Makes app the master instead of a servant
WWJ is a Component• A plug-in providing an Earth context for applications• Does the hard stuff• Terrain generation from real, remote data at high frequency• Image display and selection from terabytes of remote imagery• Rapid management of data retrieval from distributed sources• Getting it all to show up when and where it’s supposed to• In a component as simple to use as a Jbutton
• Viewing and picking
• Cross-platform and Open-sourceWWJ Is Not an Application
2008 JavaOneSM Conference | java.sun.com/javaone | 11
World Wind Live
Applications Applets
Search and Rescue
Flat World
LandPrint.comTM
Open-source Apps
PNW Peak Tour
Knowledge Planet
World Hopper
2008 JavaOneSM Conference | java.sun.com/javaone | 12
WWJ Architecture and Operation
Application
Configuration (Global)
Scene Controller
View Frame Controller Canvas
Window Environment (Swing, SWT, etc.)
Globe
Tessellator
Layer
Model
WorldWindow
Cache
Web
Notifier (Global)
2008 JavaOneSM Conference | java.sun.com/javaone | 13
WWJ Layer Architecture
Layer
RendererStorageManager
Retriever Web
Cache
2008 JavaOneSM Conference | java.sun.com/javaone | 14
Data and Processing Infrastructure
A Randy Kim Graphic
2008 JavaOneSM Conference | java.sun.com/javaone | 15
Geospatial Data: challenges
- Myriad of formats: .gtiff, .shp, .dem,…- Differing scales/resolutions/accuracies.- Differing cartographic projections: UTM, lambert
conformal, state-plane,…- HUGE DATASETS: gigabytes, terabytes,…- Need to display within interactive-time
constraints.- Need to display at multiple resolutions.
2008 JavaOneSM Conference | java.sun.com/javaone | 16
Geospatial data management in WWJ
Web Mapping Server (WMS):- Open standard (Open GIS Consortium).- Server hides and embodies esoteric knowledge
of formats, projections, multiple scales, etc.- HTTP protocol, easy to implement on client-side.- Provides data abstraction to clients:
- maps that are seamless, of arbitrary scales and extents, composed from multiple data sources.
- free of artificial server-side constraints.
2008 JavaOneSM Conference | java.sun.com/javaone | 17
WMS Challenges: an Example
One meter resolution, 25,000 x 25,000 2GBs!
Approx. 50 x 50 Km = 2,500 Km2
Viewed at global scales, this image will have a footprint of just a few pixels
Imagine data requirements at global scale
- Earth’s surface ~ 510 million Km2
- 400 TB
-And that’s One data set
2008 JavaOneSM Conference | java.sun.com/javaone | 18
WWJ WMS data management strategies
Image Pyramids: - Pre-filter at multiple scales.- Use nearest scale to satisfy client requests.
2008 JavaOneSM Conference | java.sun.com/javaone | 19
WWJ WMS data management strategies
Wavelet techniques:- Inherent multiscalar/resolution
representation.- Reconstruct to desired resolution on the fly.
2008 JavaOneSM Conference | java.sun.com/javaone | 20
WWJ WMS Implementation:
Tailored for WWJ clients (but OGC-standards compliant).Open source.Lightweight, stand-alone Java application.Installer applications for importing supported geospatial data.Plug-in architecture for integrating new sources of data.
2008 JavaOneSM Conference | java.sun.com/javaone | 21
WWJ-WMS Data Flow:
WMS
installers
source dataProcessed and organized (tiled) data and supporting structures:
WMS data repository
client clientwebhttp
2008 JavaOneSM Conference | java.sun.com/javaone | 22
Current Capabilities
3D World Context
2-1/2 D World Context
• Multiple and user projections
Data retrieval, availability
Geometry Tessellation
Image Application
Picking, Event notification
Viewing and Animation
JavaScript Interface
Icons
Text and Annotation
Polylines and Polygons
• Terrain conforming
Earth, Planets, Moon
Data formats
• JPEG, PNG, TIFF, RPF,…
• .bil for elevations
• GPX, NMEA, CSV for GPS
2008 JavaOneSM Conference | java.sun.com/javaone | 23
Code Examples
Simple — Basic WWJ in applicationApplet + JavaScriptShape Dragging
2008 JavaOneSM Conference | java.sun.com/javaone | 24
Challenges
1. Graphics drivers
2. Graphics drivers
3. Graphics drivers
4. Showing what’s there when it’s not
5. Large data volumes displayed quickly
6. Getting the factoring and interfaces right
7. Keeping the servers running
8. Finding and installing data
9. Supporting users
10. Finding time to do it all
2008 JavaOneSM Conference | java.sun.com/javaone | 25
Where Do I Go?
Code: worldwind.arc.nasa.gov/java
Demos: worldwind.arc.nasa.gov/java/demos
Forums forum.worldwindcentral.com/forumdisplay.php?
f=37
Bug tracker: issues.worldwind.arc.nasa.gov