Danh mục

Nhúng SDK Java World Wind của NASA vào Eclipse Phát triển ứng dụng GIS với SDK nguồn mở này

Số trang: 12      Loại file: pdf      Dung lượng: 278.24 KB      Lượt xem: 8      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Vladimir Silva, Kỹ sư phần mềm, IBM Tóm tắt: Bộ SDK nguồn mở World Wind Java (WWJ) do NASA xây dựng thêm một loạt các khả năng mới cho cộng đồng hệ thông tin địa lý (GIS - Geographic Information Systems) mở. World Wind, một trình hiển thị thế giới tương tác 3 chiều, được viết bằng ngôn ngữ Java™ và OpenGL, cho phép người dùng có thể zoom từ một điểm ngoài không gian tới bất cứ vị trí nào trên Trái Đất. Bài viết này giải thích cách những người xây dựng GIS, muốn nâng cấp các ứng...
Nội dung trích xuất từ tài liệu:
Nhúng SDK Java World Wind của NASA vào Eclipse Phát triển ứng dụng GIS với SDK nguồn mở này Nhúng SDK Java World Wind c ủa NASA vào EclipsePhát triển ứng dụng GIS với SDK nguồn mở nàyVladimir Silva, Kỹ sư phần mềm, IBMTóm tắt: Bộ SDK nguồn mở World Wind Java (WWJ) do NASA xây dựng thêmmột loạt các khả năng mới cho cộng đồng hệ thông tin địa lý (GIS - GeographicInformation Systems) mở. World Wind, một trình hiển thị thế giới tương tác 3chiều, được viết bằng ngôn ngữ Java™ và OpenGL, cho phép người dùng có thểzoom từ một điểm ngoài không gian tới bất cứ vị trí nào trên Trái Đất. Bài viết nàygiải thích cách những người xây dựng GIS, muốn nâng cấp các ứng dụng trên nềnEclipse của mình, có thể nhúng SDK WWJ như một trình cắm thêm vào Eclipsenhư thế nào.SDK WWJ là mô hình địa cầu đồ họa 3 chiều được xây dựng bên trên nền cácphần mở rộng Java OpenGL (JOGL). Lõi của hệ phân bậc các lớp của WWJ là lớpWorldWindowGLCanvas, đây là lớp con của lớp GLCanvas. Còn GLCanvas lại làmột thành phần của bộ công cụ Window trừu tượng (AWT - Abstract WindowToolkit).Sự phụ thuộc của WWJ vào AWT là một trở ngại cho những người xây dựng ứngdụng GIS khi họ muốn sử dụng WWJ trong các ứng dụng Eclipse của mình. Nhưbạn có thể đã biết, Eclipse dùng bộ công cụ các tiểu phẩm tiêu chuẩn (SWT -Standard Widget Toolkit) vốn không tương thích với AWT. Hơn thế nữa, AWT vàJOGL lại tích hợp chặt chẽ với nhau, điều này khiến cho cổng giao tiếp giữa giaodiện AWT và SWT thêm khó khăn. Bài viết này trình bày một giải pháp giúp bạncó thể sử dụng SDK WWJ với các ứng dụng Eclipse.Các tập dữ liệu bó kèm theo WWJWWJ bó kèm các tập dữ liệu có độ phân giải thấp, trung bình và cao sau đây (xemphần Tài nguyên để tìm liên kết đến chúng): Blue Marble (độ phân giải 1-km/pixel)  i-cubed Landsat 7 (độ phân giải 15-meter/pixel) của Global Land Cover  Facility thuộc Trường đại học MaryLand, Viện nghiên cứu Máy tính tiên tiến. Dữ liệu độ cao (SRTM30Plus/SRTMv2/USGS NED derived dataset) của  NASA Jet Propulsion Laboratory USGS Topographic, của B&W Ortho, và Color Urban Area USGS và  Microsoft® Research Các địa danh ở U.S. lấy từ hệ thống thông tin tên địa lý USGS (Geographic  Names Information System). Các địa danh trên thế giới, lấy từ National Geospatial-Intelligence Agency Về cầu nối SWT/AWTSWT nhanh chóng trở thành bộ công cụ cửa sổ tầng đỉnh cho phép tạo nhanh cácứng dụng khách mạnh và mở rộng được. Cả SWT lẫn AWT/Swing đang cạnhtranh với nhau để giành ưu thế trong phát triển giao diện người dùng Java. Trênthực tế là cả hai đều có những ưu điểm và nhược điểm, Quỹ Eclipse đã nhận thấysự cần thiết phải xây dựng một cầu nối SWT/AWT nhằm cho phép mọi người cóthể nhúng các thành phần AWT/Swing vào SWT. Thành phần cầu nối này đã trởthành một bộ phận của SWT từ phiên bản Eclipse 3.0. API đơn giản này nằmtrong gói org.eclipse.swt.awt (xem phần Tài nguyên).Cầu nối SWT/AWT là một thành phần then chốt mà ta sẽ cần để nhúng chươngtrình World Wind 3D Globe dựa trên nền AWT vào một ứng dụng Eclipse quaSWT.Khung nhìn Eclipse cho Earth 3D của WWJCó sẵn cầu nối SWT/AWT trong SWT, việc gắn Earth 3D của WWJ vào khungnhìn rất nhanh. Sau đây là đoạn mã lệnh minh họa cho một khung nhìn Eclipse cơbản thực thi nhiệm vụ này:Liệt kê 1. Khung nhìn Eclipse cơ sở cho Earth 3D của WWJpackage 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 WorldWindo wGLCanvas(); /** * 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 = (Model) WorldWind.createConfigurationComponent( AVKey.MODEL_CLASS_NAME); world.setModel(m);}/*** Passing the focus request to the viewers control.*/public void setFocus() { ...

Tài liệu được xem nhiều: