Phân tích dữ liệu không gian của DB2 với trình duyệt địa lý miễn phí

Sử dụng trình duyệt địa lý của IBM Data Management cho DB2 và Informix để hiển thị trực quan dữ liệu bảng quan hệ

Một trình duyệt địa lý (geobrowser) dành cho IBM® DB2® và Informix® bây giờ đã có sẵn để tải về miễn phí. Bạn có thể dễ dàng liệt kê các bảng có chứa dữ liệu không gian và chọn các bảng để hiển thị như một bản đồ bằng cách sử dụng một tổ hợp của các điểm, các đường và các đa giác. Người dùng có khả năng lựa chọn màu sắc, các ký hiệu, kiểu dáng đường vẽ và hiệu ứng bóng. Các công cụ dẫn hướng bản đồ cho phép bạn phóng to và thu nhỏ, xoay và chọn hiển thị các giá trị chữ và số liên quan với từng đối tượng đồ họa. Trình duyệt địa lý có thể đưa ra các kết quả phân tích không gian bằng cách sử dụng DB2 hoặc Informix. Ví dụ, có thể hiển thị trực quan các kết quả của một truy vấn không gian nhận biết các khách hàng trong một vùng lũ lụt. Trình duyệt địa lý cũng dựa vào các thành phần từ IBM's ILOG® JViews Maps. Sử dụng các thành phần này để xây dựng các ứng dụng tùy chỉnh hiển thị trực quan không gian. Hướng dẫn này cho thấy cách sử dụng trình duyệt địa lý miễn phí để hiển thị trực quan dữ liệu từ các bảng DB2.

David Adler, Kỹ sư phần mềm cấp cao, IBM China

David AdlerDavid Adler đã chịu trách nhiệm về phát triển công nghệ cơ sở dữ liệu không gian tại IBM trong hơn 20 năm, 10 năm qua ông làm về DB2 Spatial Extender Development (Phát triển trình mở rộng không gian DB2).



16 01 2012

Trước khi bạn bắt đầu

Suốt hơn 10 năm qua, DB2 Spatial Extender (trình mở rộng không gian DB2) và Informix Spatial DataBlade đã cung cấp khả năng quản lý và phân tích dữ liệu không gian trong các bảng quan hệ DB2 và Informix. Có thể định nghĩa các cột bảng với các kiểu không gian dành cho các điểm, các đường và các đa giác, có thể biểu diễn các đối tượng như:

  • Các vị trí điểm — Khách hàng, cửa hàng bán lẻ, máy biến thế điện, tháp điện thoại di động
  • Các đường — Đường cao tốc, đường ven biển, tuyến đường giao hàng, đường dây truyền tải điện
  • Các đa giác — Vùng lãnh thổ bán hàng/dịch vụ, vùng nguy cơ lũ lụt/cháy, các bang/các tỉnh/các quốc gia

Các truy vấn SQL có thể kết hợp các chức năng không gian để phân tích các mối quan hệ không gian, như việc tìm kiếm khách hàng trong một vùng lũ lụt. Ví dụ:

SELECT cust_name, cust_addr
FROM customers, flood zones
WHERE ST_Within(cust_loc, flood_loc) = 1

Kết quả của truy vấn này sẽ tạo ra một tập các tên và địa chỉ của khách hàng mà nhà của họ có thể có nguy cơ lũ lụt. Kết quả này có thể có ích trong việc tính toán các mức bảo hiểm hoặc gửi đi một đề nghị mua bảo hiểm lũ lụt.

Trong nhiều trường hợp, có thể rút ra những hiểu biết thấu đáo hơn nữa từ việc hiển thị trực quan kết quả trong một công cụ lập bản đồ. Như người ta thường nói, "Một hình ảnh bằng cả ngàn lời nói". Phần còn lại của hướng dẫn này sẽ cho bạn thấy cách sử dụng trình duyệt địa lý miễn phí để hiển thị trực quan các dữ liệu này từ các bảng DB2.

Hình 1. Làm nổi bật các khách hàng Kentucky trong vùng lũ lụt bằng màu đỏ
Một bản đồ làm nổi bật các khách hàng Kentucky bằng màu dỏ là nhưng khách hàng trong vùng lũ lụt

Về hướng dẫn này

Hướng dẫn này sẽ cùng bạn thiết lập DB2 với một cơ sở dữ liệu mẫu, thiết lập trình duyệt địa lý và chạy trình duyệt địa lý để hiển thị trực quan các bảng không gian và các kết quả phân tích không gian. Nó cũng đưa ra các gợi ý để làm việc có hiệu quả với dữ liệu không gian và khám phá các kỹ thuật bổ sung để hiển thị trực quan không gian.

Mặc dù hướng dẫn này dựa vào DB2 cho Linux®, UNIX® và Windows®, nhưng cũng có thể làm tương tự, với những thay đổi nhỏ, nếu sử dụng DB2 cho z/OS® hoặc cơ sở dữ liệu Informix.

Các điều kiện cần trước

Hướng dẫn này được viết cho những người phát triển ứng dụng không gian và những người phát triển ứng dụng cơ sở dữ liệu. Bạn cần hiểu rõ về dữ liệu không gian và đã quen làm việc với các truy vấn SQL.

Các yêu cầu hệ thống

Để chạy các ví dụ, bạn cần một môi trường Windows hoặc Linux với khoảng 500 MB có sẵn để cài đặt DB2 và trình duyệt địa lý. Nếu DB2 đã được cài đặt rồi, bạn chỉ cần khoảng 20 MB.


Bắt đầu

Tổng quan

Cách dễ nhất để bắt đầu là tải về các phiên bản Express-C của DB2 và DB2 Spatial Extender cho Windows hoặc Linux, sau đó chạy chương trình trình diễn không gian để tạo ra một số các bảng chứa dữ liệu không gian. Trình duyệt địa lý có thể được tải về để xem dữ liệu trong các bảng và các kết quả của các truy vấn không gian này. Xem phần Tải về để lấy các mã này.

Trung tâm Thông tin DB2 bao gồm một phần dành cho " dữ liệu không gian và trắc địa", cung cấp thông tin về cài đặt và làm việc với DB2 Spatial Extender (xem phần Tài nguyên).

Cài đặt DB2 và chạy chương trình mẫu

Sau khi tải về và giải nén các ảnh cài đặt, chạy setup.exe (Windows) hoặc db2setup (Linux) cho máy chủ DB2 và cho DB2 Spatial Extender. Để nguyên các tùy chọn mặc định trong quá trình thiết lập là đủ.

Trong môi trường Windows, điều cần thiết là tăng thêm tham số cấu hình của trình quản lý cơ sở dữ liệu cho kích thước ngăn xếp đại lý với các lệnh sau đây được ban hành từ một cửa sổ lệnh DB2:

db2 update dbm cfg using agent_stack_sz 100
db2stop
db2start

Trong Linux, điều cần thiết là thiết lập biến môi trường DB2PATH để trỏ đến thư mục cài đặt cá thể DB2 trước khi chạy chương trình trình diễn không gian bằng một lệnh như sau:

export DB2PATH=/home/db2inst1/sqllib

Nếu cá thể DB2 của bạn là khác, hãy sửa đổi lệnh để trỏ đến vị trí chính xác.

Trước khi chạy trình diễn không gian, bạn cần phải tạo ra một cơ sở dữ liệu. Cách dễ nhất để làm điều này là tạo cơ sở dữ liệu DB2 mẫu mặc định bằng lệnh db2sampl, sau đó chuyển đến thư mục chứa các ví dụ mẫu không gian (samples\spatial):

cd /home/db2inst1/sqllib/extenders/samples/spatial (Linux)
or
cd c:\program files\IBM\sqllib\extenders\samples\spatial (Windows)

và chạy lệnh runGseDemo sample userid password. Lệnh này sẽ chạy cơ sở dữ liệu để xử lý không gian, tạo ra một số các bảng không gian và thi hành các truy vấn không gian với kết quả đầu ra ở cửa sổ thiết bị đầu cuối.

Cài đặt trình duyệt địa lý

Cài đặt trình duyệt địa lý chỉ đơn giản là giải nén tệp đã tải về vào một vị trí thuận tiện trên hệ thống của bạn. Các tệp batch để khởi động trình duyệt địa lý — run_geobrowser.cmd (Windows) và run_geobrowser.sh (Linux) — có thể cần được sửa đổi theo thông tin trong tệp batch để thiết lập đường dẫn lớp (classpath) Java™ cho thích hợp.


Làm việc với trình duyệt địa lý

Khởi động trình duyệt địa lý

Khởi động trình duyệt địa lý bằng cách vào thư mục đã cài đặt nó và chạy lệnh run_geobrowser.cmd (Windows) hay run_geobrowser.sh (Linux). Trình duyệt địa lý ban đầu sẽ hiển thị một bản đồ thế giới dựa trên một tệp trong bản cài đặt. (Ảnh chụp màn hình cho thấy một vùng bản đồ nhỏ hơn do các yêu cầu định dạng của hướng dẫn này).

Sử dụng Help > Help Contents để truy cập đến tài liệu trực tuyến cho ứng dụng mẫu của JViews Map Viewer mà trình duyệt địa lý dựa vào đó.

Hình 2. Màn hình ban đầu khi trình duyệt địa lý đã khởi động
Màn hình ban đầu của trình duyệt địa lý

Hiển thị các bảng không gian

Sử dụng File > Add Map Data để đưa ra một hộp thoại chọn dữ liệu không gian muốn thêm vào bản đồ. Lựa chọn mặc định là truy cập DB2 cho Linux, UNIX và Windows. Mục trình đơn Files of Type cho phép lựa chọn một kết nối cơ sở dữ liệu Informix hoặc truy cập dữ liệu theo định dạng shapefile từ hệ thống tệp (N.D: shapefile là định dạng dữ liệu địa lý véc tơ rất phổ biến).

Điền thông tin kết nối DB2 thích hợp. Bạn nên sử dụng cùng mã định danh (ID) người dùng và mật khẩu như đã chọn trong quá trình thiết lập để chạy runGseDemo. Nếu bạn đang chạy trên cùng một hệ thống đã cài đặt DB2, tên máy chủ cần được chỉ rõ là localhost. Cổng mặc định là 50000. Nhấn Connect, sẽ hiển thị một danh sách các bảng có một cột không gian như hiển thị dưới đây. Chọn tất cả các bảng và nhấn Open.

Hình 3. Hộp thoại kết nối DB2
Hộp thoại kết nối DB2

Để phóng to vùng cần quan tâm, nhấn vào phía bên trái của nút mở rộng trong thẻ (tab) Map Layers (Các tầng bản đồ) để hiển thị danh sách các bảng đã tải lên. Sau đó, chọn bảng REGIONS và nhấn vào nút zoom layer tool trên thanh công cụ, sẽ dẫn đến một màn hình hiển thị bản đồ như sau.

Hình 4. Các khách hàng ở Kentucky
Các khách hàng ở Kentucky

Có thể sử dụng các nút khác trên thanh công cụ tool bar để phóng to/thu nhỏ, xoay, chọn một đối tượng, v.v.. Di chuột trên một nút sẽ bật lên mô tả của nút đó.

Thay đổi việc sử dụng các ký hiệu

Việc sử dụng các ký hiệu mặc định cho bản đồ sẽ hiển thị tất cả các đối tượng điểm là các hình vuông rỗng màu xanh lá cây và các đa giác với đường viền màu xanh dương. Chúng ta muốn làm nổi bật các khách hàng trong vùng lũ lụt dưới dạng các hình thoi đặc màu đỏ và vẽ các hình đa giác vùng lũ bằng màu đỏ.

Việc sử dụng các ký hiệu được điều khiển bởi ô Dynamic Style Setting (Thiết lập kiểu dáng động) bên dưới danh sách các tầng bản đồ. Chọn một tầng bản đồ, và bạn có thể thiết lập màu sắc, ghi nhãn, ký hiệu đánh dấu và kích thước ký hiệu.

Để làm nổi bật các khách hàng trong một vùng lũ lụt, chọn HIGHRISKCUSTOMERS trong thẻ Map Layers, sau đó nhấn vào thanh màu sắc bên cạnh Point Color (màu điểm) và chọn màu đỏ từ bảng màu. Nhấn vào trường bên cạnh Point Type (kiểu điểm) và chọn Filled Diamond (Hình thoi tô đặc). Nhấn vào vào trường bên cạnh Point Size (kích thước điểm) và thay đổi kích thước thành 4. Bây giờ nhấn vào trường bên cạnh Labeling (ghi nhãn) và chọn NAME.

Để làm nổi bật các hình đa giác vùng lũ lụt, chọn FLOODZONES (các vùng lũ lụt) trong thẻ Map Layers, rồi nhấn vào thanh màu sắc bên cạnh Line Color (màu đường) và chọn màu đỏ từ bảng màu.

Để phân biệt các địa điểm văn phòng, chọn OFFICES (Các văn phòng) trong thẻ Map Layers, sau đó nhấn vào thanh màu bên cạnh Point Color và chọn màu xanh dương từ bảng màu. Nhấn vào trường bên cạnh Point Type và chọn Filled Square (Hình vuông tô đặc). Bây giờ hãy nhấn vào trường bên cạnh Point Size và thay đổi kích thước thành 4. Nếu bạn phóng to, bạn sẽ thấy trông giống như hình bên dưới.

Hình 5. Các khách hàng trong vùng lũ lụt ở Kentucky được làm nổi bật
Các khách hàng trong vùng lũ lụt ở Kentucky được làm nổi bật

Lưu một bản đồ

Tất cả thông tin về bản đồ mà bạn đang làm việc có thể được lưu và phục hồi lại trong một phiên làm việc tiếp theo. Sử dụng File > Save Map As để đưa ra một hộp thoại lưu bản đồ như trong hình dưới đây.

Hình 6. Lưu một tài liệu bản đồ
Hộp thoại lưu bản đồ

Các tùy chọn sau có sẵn trong hộp thoại này:

Chỉ lưu chủ đề (Save Theme Only)
Chọn mục này sẽ lưu thông tin kết nối cơ sở dữ liệu, các tầng được chọn và thông tin sử dụng ký hiệu liên quan. Khi nạp lại tài liệu bản đồ này, các bảng cơ sở dữ liệu sẽ được đọc để khôi phục lại bản đồ. Nếu không chọn tùy chọn này, tất cả các thông tin đồ họa sẽ được lưu vào tệp sao cho có thể phục hồi bản đồ mà không cần kết nối cơ sở dữ liệu. Không chọn tùy chọn này có thể dẫn đến một tệp rất lớn.
Lưu như mã nhị phân (Save as Binary)
Nếu chọn mục này, các tài liệu bản đồ được lưu dưới dạng mã nhị phân. Nếu không, nó được lưu như một tệp văn bản đọc được.

Lưu bản đồ để bạn có thể sử dụng lại nó trong phần tiếp theo.


Phân tích không gian

Làm việc với các truy vấn không gian

Nền dữ liệu không gian mẫu

Trong phần trước, bạn chỉ đơn giản là chọn tất cả các bảng và các khung nhìn đã được ứng dụng không gian mẫu tạo ra. Bây giờ chúng ta sẽ thảo luận về các bảng bên dưới và có thể thực hiện các phép toán hữu ích nào với chúng.

Các tầng bản đồ sau đây tương ứng trực tiếp với các bảng DB2:

  • CUSTOMERS— Các giá trị điểm có các tọa độ tương ứng với địa chỉ khách hàng
  • OFFICES— Các giá trị điểm có các tọa độ tương ứng với địa chỉ văn phòng chi nhánh
  • FLOODZONES— Các hình đa giác xác định vùng có nguy cơ lũ lụt cao
  • REGIONS— Các hình đa giác biểu diễn các vùng bán hàng ở Kentucky
  • HIGHRISKCUSTOMERS thực tế là một khung nhìn DB2 có định nghĩa sau:
                CREATE VIEW HIGHRISKCUSTOMERS (ID, NAME, ADDRESS, CITY, STATE, ZIP,
                                               INCOME, PREMIUM, CATEGORY, LOCATION)
                AS (SELECT C.ID, C.NAME, C.ADDRESS, C.CITY, C.STATE, C.ZIP,
                           C.INCOME, C.PREMIUM, C.CATEGORY, C.LOCATION
                FROM CUSTOMERS C, FLOODZONES F
                WHERE DB2GSE.ST_WITHIN(C.LOCATION, F.LOCATION) = 1)

Khung nhìn này thực hiện một phép nối không gian, kết nối các hàng trong bảng CUSTOMER với các hàng tương ứng của bảng FLOODZONES ở đó vị trí của khách hàng nằm bên trong một hình đa giác vùng lũ lụt. Xem phần Tài nguyên để biết về Trung tâm thông tin DB2 (DB2 InfoCenter), chứa các thông tin về tất cả các hàm không gian có thể được sử dụng trong một mệnh đề WHERE.

Một số hàm không gian thường dùng phổ biến nhất là:

  • ST_Contains— Nghịch đảo của ST_Within
  • ST_Intersects— Kiểm tra xem có bất kỳ phần giá trị không gian nào giao cắt nhau không
  • ST_Touches— Kiểm tra xem có một giá trị không gian nào chạm vào một chỗ của giá trị không gian khác, nhưng không chồng lấp lên nhau không
  • ST_Distance— Kiểm tra xem khoảng cách gần nhất giữa hai giá trị không gian có nhỏ hơn một khoảng cách đã định không

Phân tích khoảng cách

Một kịch bản khác mà chúng ta có thể quan tâm đến là tìm kiếm tất cả các khách hàng ở trong một khoảng cách nhất định tới các văn phòng chi nhánh để làm nổi bật trên bản đồ và vẽ một vòng tròn cùng khoảng cách đó. Thực hiện các câu lệnh SQL dưới đây để tạo ra các khung nhìn:

CREATE VIEW NEARCUSTOMERS (ID, NAME, ADDRESS, CITY, STATE, ZIP,
                               INCOME, PREMIUM, CATEGORY, LOCATION)
AS (SELECT C.ID, C.NAME, C.ADDRESS, C.CITY, C.STATE, C.ZIP,
           C.INCOME, C.PREMIUM, C.CATEGORY, C.LOCATION
FROM CUSTOMERS C, OFFICES O
WHERE DB2GSE.ST_DISTANCE(C.LOCATION, O.LOCATION,'STATUTE MILE') < 10.0)
CREATE VIEW OFFICE_CIRCLE (ID, CIRCLEPOLY)
AS (SELECT O.ID, 
    TREAT (DB2GSE.ST_BUFFER(O.LOCATION, 5.0, 'STATUTE MILE') AS db2gse.ST_Polygon)
FROM OFFICES O
    )

Cần dùng toán tử TREAT trong khung nhìn trên để thông báo cho DB2 rằng kết quả của hàm ST_BUFFER sẽ là một kiểu không gian hình đa giác. Nếu không, kết quả được coi là một kiểu không gian ST_Geometry.

Để xem các kết quả trong trình duyệt địa lý:

  1. Khởi động trình duyệt địa lý. Nếu nó đã hoạt động rồi, thì thoát ra và khởi động lại nó để đảm bảo rằng các khung nhìn không gian mới sẽ được chọn.
  2. Sử dụng hộp thoại File > Open Prepared Map để chọn tài liệu bản đồ mà bạn đã lưu trước đó.
  3. Sử dụng hộp thoại File > Add Map Data để kết nối đến cơ sở dữ liệu và chọn NEARCUSTOMERSOFFICE_CIRCLE.
  4. Bỏ dấu chọn các tầng bản đồ HIGHRISKCUSTOMERSFLOODZONES.
  5. Chọn NEARCUSTOMERS, thiết lập màu sắc là màu vàng, ký hiệu là hình vuông tô đặc và kích thước là 4.
  6. Chọn OFFICE_CIRCLE, thiết lập màu là màu vàng.

Việc này sẽ dẫn đến một bản đồ như sau.

Hình 7. Bản đồ với các khách hàng cách một văn phòng chi nhánh trong vòng 5 dặm được nêu bật
Bản đồ khoảng cách

Các quyền hạn và các lược đồ

Các hoạt động ở trên giả định bạn được kết nối với cơ sở dữ liệu như chính là người dùng ban đầu chạy chương trình runGseDemo. Điều này làm đơn giản hoá việc truy cập bảng trong trình duyệt địa lý và tạo các khung nhìn cơ sở dữ liệu bổ sung.

Để xem các bảng không gian được người khác tạo ra, bạn cần đảm bảo rằng ID người dùng thực hiện kết nối trong trình duyệt địa lý đã được cấp quyền hạn SELECT trên các bảng không gian vì trình duyệt địa lý sẽ chỉ liệt kê các bảng mà bạn được ủy quyền truy cập.

Khi bạn tạo các khung nhìn, trừ khi bạn quy định khác đi, DB2 giả định rằng bạn đã tạo và sở hữu các bảng đang được tham khảo. Để tham khảo các bảng do người khác tạo ra, bạn cần phải đặt thêm tiền tố rõ ràng trước tên bảng, dùng tên lược đồ của nó — thường là tên tác giả, trừ trường hợp được quy định khác. Bạn cũng có thể chỉ định một lược đồ cho khung nhìn mà bạn đang tạo. Trong trường hợp này, chúng ta sẽ diễn tả khung nhìn là:

CREATE VIEW MYSCHEMA.NEARCUSTOMERS (ID, NAME, ADDRESS, CITY, STATE, ZIP,
                               INCOME, PREMIUM, CATEGORY, LOCATION)
AS (SELECT C.ID, C.NAME, C.ADDRESS, C.CITY, C.STATE, C.ZIP,
           C.INCOME, C.PREMIUM, C.CATEGORY, C.LOCATION
FROM DAVEA5.CUSTOMERS C, DAVEA5.OFFICES O
WHERE DB2GSE.ST_DISTANCE(C.LOCATION, O.LOCATION,'STATUTE MILE') < 10.0)

Hiển thị trực quan ứng dụng tùy chỉnh

Xây dựng một ứng dụng JViews Maps tùy chỉnh

Ứng dụng trình duyệt địa lý được sử dụng trong hướng dẫn này dựa vào ứng dụng mẫu mapbuilder của JViews Maps. Sự khác biệt chính là sự hỗ trợ cho một số lượng giới hạn các kiểu nguồn dữ liệu (DB2, Informix, shapefile) và khả năng Options > Refresh All. Khả năng Refresh All (Làm mới tất cả) hữu ích để nạp lại màn hình hiển thị bản đồ từ các nội dung của bảng cơ sở dữ liệu hiện tại khi một ứng dụng khác có thể thực hiện các thay đổi với bảng này.

Mẫu mapbuilder là một ứng dụng Java tích hợp nhiều thành phần JViews Maps thành một ứng dụng người dùng cuối trọn vẹn. Bạn có thể sửa đổi ứng dụng này để bao gồm chỉ các khả năng mà bạn cần và thêm chức năng tùy chỉnh riêng của bạn. Hoặc bạn có thể bắt đầu từ đầu để xây dựng một ứng dụng dựa trên các thành phần của JViews Maps.

Tải bản sao dùng thử của JViews Maps (xem phần Tài nguyên). Để triển khai ứng dụng riêng của bạn, bạn sẽ cần nhận được một giấy phép thường xuyên cho JViews Maps.

Các ký hiệu động với JViews Designer

JViews Maps cũng bao gồm các thành phần của JViews Designer (Nhà thiết kế Jviews), cho phép sử dụng các ký hiệu một cách động và tinh vi hơn là bộ ký hiệu bản đồ do JViews Maps cung cấp. Bạn có thể thay đổi kích thước, màu sắc, hoặc biểu tượng của các ký hiệu dựa trên các giá trị thuộc tính.

Khi bạn cài đặt JViews Maps, một mẫu mà bạn có thể chạy ngay lập tức là loaddiag, trong đó cho thấy các xe với các kiểu khác nhau đang chạy trên một bản đồ Hoa Kỳ. Mẫu này sử dụng một nguồn dữ liệu XML và mã Java để mô phỏng sự chuyển động của xe.

Ngoài ra có thể sử dụng một nguồn dữ liệu JDBC của DB2 kết nối với một bảng không gian DB2. Một ví dụ dựa trên cơ sở dữ liệu và dữ liệu này mà chúng ta đã sử dụng trong các phần trước được hiển thị trong hình sau, mỗi văn phòng được biểu diễn bằng một vòng tròn có kích thước dựa trên số lượng nhân viên trong bảng OFFICES.

Hình 8. Bản đồ sử dụng JViews Designer với các ký hiệu thay đổi được
Ảnh cho thấy bản đồ của JViews Designer

Mã mẫu để thực hiện việc này có sẵn trong phần Tải về. Giải nén nó vào thư mục samples của JViews Maps.

Giải thích mã mẫu

Cách tiếp cận chung đến ứng dụng hiển thị trực quan JViews là để giảm thiểu các yêu cầu mã hóa thực tế và sử dụng một cách tiếp cận mô tả cho các nội dung và hiển thị trực quan. Mỗi tệp quan trọng có liên quan được mô tả dưới đây.

src\dw-demo1.java

Đây là một ứng dụng Java AWT đơn giản để xây dựng Giao diện đồ họa người dùng, sử dụng các thành phần JViews Maps cho thanh công cụ và vùng bản đồ. Việc nạp tệp dw-demo1.idpr bắt đầu quá trình hiển thị trực quan. Mã này khá đơn giản.

resources\data\dw-demo1.idpr

Tệp này quy định kiểu dáng được áp dụng, thông tin kết nối cơ sở dữ liệu, truy vấn để nhận được các cột sẽ dùng trong ứng dụng và ánh xạ các tên cột cơ sở dữ liệu với các tên thuộc tính mà bản định kiểu sử dụng.

JViews chờ đợi thông tin vị trí được cung cấp trong các thuộc tính có tên là latitude (vĩ độ) và longitude (kinh độ). Dẫn xuất ra các giá trị này phức tạp hơn bình thường một chút. JViews làm việc với các tọa độ được biểu diễn bằng radian chứ không sử dụng giá trị bằng độ, vì vậy chúng ta cần biểu thức * 3.14159 / 180.0 để chuyển đổi từ độ sang radian.

Các tọa độ trong cột LOCATION thực tế được lưu trữ bằng cách sử dụng hệ thống tọa độ phẳng quốc gia thường dùng cho các ứng dụng lập bản đồ có độ chính xác cao và đơn vị là phít ( “feed” - đơn vị đo chiều dài Anh). Chúng ta sử dụng hàm st_transform(1) của DB2 Spatial Extender để chuyển đổi từ phít sang độ trong hệ thống tọa độ thường dùng với dữ liệu Bắc Mỹ.

<diagrammer style="dw-demo1.css">
  <datasource class="ilog.views.diagrammer.datasource.IlvJDBCDataSource">
    <connection id="basic"
      url="jdbc:db2://localhost:50000/sample"
      user="davea5"
      passwd="my_password"
      driver="com.ibm.db2.jcc.DB2Driver"/>
    <query connection="basic"
      value="SELECT id, name, employees, 
             location..st_transform(1)..st_miny * 3.14159 / 180.0 as latitude, 
             location..st_transform(1)..st_minx * 3.14159 / 180.0 as longitude 
             FROM davea5.offices 
             where location is not null"
      tag="node"
      links="false">
<map columns="ID" property="id"/>
<map columns="LATITUDE" property="latitude"/>
<map columns="LONGITUDE" property="longitude"/>
<map columns="NAME" property="name"/>
<map columns="EMPLOYEES" property="employees"/>
   </query>
  </datasource>
</diagrammer>

resources\data\dw-demo1.css

Tệp này quy định bản đồ nền thường dùng và kiểu dáng của các nút (node) được trả về từ truy vấn trong tệp dw-demo1.idpr. Phần Map (Bản đồ) tham khảo bản đồ cụ thể được sử dụng, đó là dw-demo1.ivl.

Map {
   _rule_name : "Background Map" ;
   autoRegionOfInterest : "true" ;
   map : "url(dw-demo1.ivl)" ;
   regionOfInterest : "" ;
   regionOfInterestMargin : "5.0" ;
}

Bạn cần thay thế tên tệp dw-demo1.ivl bằng tên của tệp bản đồ mà bạn tạo ra trong trình duyệt địa lý.

Trong phần node (nút), name : "@name" chỉ rõ rằng thuộc tính name được sử dụng cho giá trị tên được hiển thị cùng với ký hiệu trên bản đồ. class : "@|symbolResource(ilog/views/palettes/shared/symbols/SizedRound.css,Symbol)" chỉ rõ bảng ký hiệu được sử dụng và ký hiệu cụ thể là: SizedRound. size : "@employees" chỉ rõ rằng thuộc tính employees (các nhân viên) cần được sử dụng để điều khiển kích thước của ký hiệu.

node {
   Layer : "20" ;
   Interactor : "ilog.views.sdm.IlvSDMCompositeInteractor" ;
   fill : "false" ;
   name : "@name" ;
   class : "@|symbolResource(ilog/views/palettes/shared/symbols/SizedRound.css,Symbol)" ;
   size : "@employees" ;
}

resources\data\dw-demo1.ivl

Đây là tệp bản đồ được trình duyệt địa lý tạo ra. Bạn cần thay thế nó bằng tệp bạn đã tạo ra.


Kết luận

Bây giờ bạn sẽ có một ý tưởng hợp lý về cách truy cập các bảng DB2 để hiển thị trực quan dưới dạng bản đồ các nội dung của các cột không gian và các kết quả của các truy vấn cơ sở dữ liệu khi sử dụng các biến vị ngữ không gian. Các điểm, các đường và các đa giác có thể được gắn nhãn bằng cách sử dụng các giá trị cột cơ sở dữ liệu cũng như được tạo kiểu dáng với các màu sắc, các ký hiệu, các kiểu đường nét và độ rộng đường khác nhau. Bạn có thể xây dựng các ứng dụng hiển thị trực quan tùy chỉnh bằng cách sử dụng công nghệ Java và các thành phần JViews Maps. Với JViews Designer, bạn có thể tạo ra các ứng dụng với các ký hiệu tinh xảo có thể biến đổi màu sắc, kích thước và hình ảnh, dựa trên các giá trị cơ sở dữ liệu. Nhờ thay đổi các tham số kết nối cơ sở dữ liệu, các khả năng tương tự này có sẵn với các cơ sở dữ liệu DB2 cho z/OS và Informix.


Tải về

Mô tảTênKích thước
Source code for DB2 and JViews Maps sampleDB2JviewsMapsDemo.zip30KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Tải về DB2 Express-C và DB2 Spatial Extender. Đây là các phiên bản miễn phí có đủ chức năng của DB2 và Spatial Extender.
  • Tải về DB2 Spatial Extender tương ứng với một bản cài đặt máy chủ DB2 hiện có. Dữ liệu không gian mẫu theo định dạng shapefile để sử dụng với Spatial Extender cũng có sẵn thông qua liên kết này.
  • Tải về Trình duyệt địa lý cho DB2 và Informix. Trình duyệt địa lý này miễn phí để bạn có thể sử dụng với bất kỳ phiên bản nào của DB2 hay Informix với tính năng không gian được cài đặt.
  • Tải về Optim Data Studio, cung cấp miễn phí cho các nhà phát triển và các nhà quản trị CSDL các khả năng cơ bản để quản lý và phát triển cơ sở dữ liệu cho DB2 và Informix.
  • Tải về bản sao dùng thử của Maps JViews cho Quốc phòng. (Bản này bao gồm tất cả các chức năng Maps JViews cơ bản và các khả năng bổ sung để lập bản đồ liên quan đến quốc phòng.)
  • Xây dựng dự án phát triển tiếp theo của bạn với phần mềm dùng thử của IBM, có sẵn để tải về trực tiếp từ developerWorks.

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management
ArticleID=787737
ArticleTitle=Phân tích dữ liệu không gian của DB2 với trình duyệt địa lý miễn phí
publish-date=01162012