快速业务通道

在Eclipse中嵌入NASA World Wind Java SDK - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

在Eclipse中嵌入NASA World Wind Java SDK

时间:2011-11-09 IBM Vladimir Silva

使用此开源 SDK 开发 GIS 应用程序

简介:NASA 开发的开源 World Wind Java (WWJ) SDK 为地理信息系统(Geographic Information Systems,GIS)社区提供了新的可能性。World Wind 是一种使用 Java™ 语言和 OpenGL 编写的 3D 交互式地球查看工具,使用户可以从外太空观看地球上的任何地方。本文将讲述想要增强基于 Eclipse 的 应用程序的 GIS 开发人员如何将 WWJ SDK 作为插件嵌入到 Eclipse 中。

WWJ SDK 是一种构建在 Java OpenGL (JOGL) 扩展之上的 3D 图形地球仪。WWJ 类层次结构的核心是 GLCanvas 的 子类 WorldWindowGLCanvas。而 GLCanvas 是一个 Abstract Window Toolkit (AWT) 组件。

WWJ 对 AWT 的依赖性对于想在 Eclipse 应用程序中使用 WWJ 的 GIS 开发人员来讲是一个障碍。您 可能知道,Eclipse 使用了 Standard Widget Toolkit (SWT),而 SWT 与 AWT 不兼容。而且,AWT 和 JOGL 紧密集成,这使得很难从 AWT 移植到 SWT。本文将提供一种解决方案,使您可以在 Eclipse 应用 程序中使用 WWJ SDK。

进入 SWT/AWT 桥梁

SWT 因能够快速构建可伸缩和强大的客户端应用程序而迅速成为一种顶级窗口工具包。SWT 和 AWT/Swing 都在争当 Java 用户界面开发的权威。由于它们各有利弊,Eclipse 基金会意识到有必要构建 一座允许在 SWT 中嵌入 AWT/Swing 组件的 SWT/AWT 桥梁。从 Eclipse version 3.0 开始,这座桥梁就 已成为 SWT 的一部分。这个的 API 位于 org.eclipse.swt.awt 包中(参见 参考资料)。

SWT/AWT 桥梁是通过 SWT 将基于 AWT 的 World Wind 3D Globe 嵌入到 Eclipse 应用程序中所需的 关键组件。

WWJ 3D Earth 的 Eclipse 视图

借助 SWT 中已存在的 SWT/AWT 桥梁,可以轻松地将 WWJ 3D Earth 嵌入到您的视图中。清单 1 演示 执行此任务的基本 Eclipse 视图:

在Eclipse中嵌入NASA World Wind Java SDK(2)

时间:2011-11-09 IBM Vladimir Silva

清单 1. WWJ 3D Earth 的基本 Eclipse 视图

package org.eclipse.plugin.worldwind.views; _ /** * World Wind Eclipse RCP Earth View * @author Vladimir Silva * */ public class EarthView extends ViewPart {   private static final Logger logger = Logger.getLogger (EarthView.class);   public static final String ID = EarthView.class.getName();   final WorldWindowGLCanvas world = new WorldWindowGLCanvas();   /**   * Initialize the default WW layers   */   static {    initWorldWindLayerModel ();   }   public EarthView() {   }   /**   * This is a callback that will allow us to create the viewer and initialize   * it.   */   public void createPartControl(Composite parent)   {    // GUI: an SWT composite on top    Composite top = new Composite(parent, SWT.EMBEDDED);     top.setLayoutData(new GridData(GridData.FILL_BOTH));    // Swing Frame and Panel    java.awt.Frame worldFrame = SWT_AWT.new_Frame(top);    java.awt.Panel panel = new java.awt.Panel(new java.awt.BorderLayout());    worldFrame.add (panel);    // Add the WWJ 3D OpenGL Canvas to the Swing Panel    panel.add (world, BorderLayout.CENTER);    parent.setLayoutData(new GridData (GridData.FILL_BOTH));   }   /*   * Initialize WW model with default layers   */   static void initWorldWindLayerModel ()   {    Model m = (Mo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号