Tìm hiểu công nghệ WebGIS và ứng dụng
MỤC LỤC
LỜI MỞ ĐẦU 2
1.1Hệ thống thông tin địa lý 3
1.1.1Các khái niệm cơ bản về GIS 3
1.1.1.1.Khái niệm GIS 3
1.1.1.2. Các thành phần của GIS 4
1.1.2Các nhiệm vụ của GIS 6
1.1.2.1 Nhập dữ liệu 6
1.1.2.2 Thao tác dữ liệu 6
1.1.2.4. Hỏi đáp và phân tích 7
1.1.3Cấu trúc dữ liệu Raster và Vecto 8
1.1.3.1Cấu trúc dữ liệu Raster 8
1.1.3.2Cấu trúc dữ liệu Vecto 9
1.1.3.3Ưu nhược điểm của cấu trúc Raster và Vecto 9
1.1.4Các công nghệ liên quan 10
1.2WebGIS và ứng dụng 11
1.2.1. Khái niệm 11
1.2.2 Ứng dụng của WebGIS 11
1.3Ngôn ngữ lập trình Java 11
1.3.1 Các đặc điểm và các thành phần cơ bản của Java 12
1.3.1.1. Các đặc điểm của ngôn ngữ lập trình Java 12
1.3.1.2. Các thành phần cơ bản của Java 12
1.3.1.3. Cấu trúc điều khiển 12
1.3.2 Xây dựng chương trình Java 13
1.3.2.1 Phương thức, lớp và chương trình Java 13
1.3.2.2. Đối tượng Exception, gói, interface và thread 15
1.3.2.3 Lớp String 16
1.3.3 Giao diện đồ hoạ của Java 16
1.3.4. Đối tượng đồ hoạ (Graphics) 18
1.3.5 Java Applet 19
thông tin khác và khiến cho GIS có phạm vi ứng dụng rộng trong nhiều lĩnh vực
khác.
GIS cho phép tạo lập bản đồ, phối hợp thông tin, khái quát các viễn cảnh,
giải quyết các vấn đề phức tạp, và phát triển các giải pháp hiệu quả mà trước
đây không thực hiện được. GIS là một công cụ được các cá nhân, tổ chức, trường
học, chính phủ và các doanh nghiệp sử dụng nhằm hướng tới các phương thức
mới giải quyết vấn đề.
Lập bản đồ và phân tích địa lý không phải là kỹ thuật mới, nhưng GIS
thực thi các công việc này tốt hơn và nhanh hơn các phương pháp thủ công cũ.
Trước công nghệ GIS, chỉ có một số ít người có những kỹ năng cần thiết để sử
dụng thông tin địa lý giúp ích cho việc giải quyết vấn đề và đưa ra các quyết
định. GIS được sử dụng để cung cấp thông tin nhanh hơn và hiệu quả hơn cho
các nhà hoạch định chính sách. Các cơ quan chính phủ dùng GIS trong quản lý
các nguồn tài nguyên thiên nhiên, trong các hoạt động quy hoạch, mô hình hoá
và quan trắc.
Hệ thống thông tin địa lý là hệ thống quản lý, phân tích và hiển thị tri thức
địa lý, tri thức này được thể hiện qua các tập thông tin:
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
3
Tìm hiểu công nghệ WebGIS và ứng dụng
Các bản đồ: giao diện trực tuyến với dữ liệu địa lý để tra cứu, trình
bày kết quả và sử dụng như là một nền thao tác với thế giới thực
Các tập thông tin địa lý: thông tin địa lý dạng file và dạng cơ sở dữ
liệu gồm các yếu tố, mạng lưới, topology, địa hình, thuộc tính
Các mô hình xử lý: tập hợp các quy trình xử lý để phân tích tự động
Các mô hình dữ liệu: GIS cung cấp công cụ mạnh hơn là một cơ sở dữ
liệu thông thường bao gồm quy tắc và sự toàn vẹn giống như các hệ
thông tin khác. Lược đồ, quy tắc và sự toàn vẹn của dữ liệu địa lý
đóng vai trò quan trọng
Metadata: hay tài liệu miêu tả dữ liệu, cho phép người sử dụng tổ
toán thống kê, báo cáo, các quan trắc thực địa, ảnh vệ tinh, ảnh máy bay, bản đồ
giấy (dạng analog). Kỹ thuật hiện đại về viễn thám và GIS có khả năng cung
cấp thông tin không gian bao gồm các thuộc tính địa lý, khuôn dạng dữ liệu, tỷ lệ
bản đồ và các số liệu đo đạc.
Con người
Công nghệ GIS sẽ bị hạn chế nếu không có con người tham gia quản lý hệ
thống và phát triển những ứng dụng GIS trong thực tế. Vì GIS la một hệ thống
tổng hợp của nhiểu công việc kỹ thuật, do đó đòi hỏi người điều hành phải được
đào tạo và có kinh nghiệm trong nhiểu lĩnh vực. Hơn nữa sự phát triển không
ngừng của các kỹ thuật phần cứng và phần mềm đòi hỏi người điều hành phải
luôn được đào tạo. Những yêu cầu cơ bản về người điều hành bao gồm các vấn
đề sau: có kiến thức cơ bản về địa lý, bản đồ, máy tính và công nghệ tin.
Người sử dụng GIS có thể là những chuyên gia kỹ thuật, người thiết kế và
duy trì hệ thống, hoặc những người dùng GIS để giải quyết các vấn đề trong
công việc.
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
5
Tìm hiểu công nghệ WebGIS và ứng dụng
Phương pháp
Đó là tập hợp các quy định, quy phạm, tiêu chuẩn, định hướng, chủ trương
ứng dụng của nhà quản lý, các kiến thức chuyên ngành và các kiến thức về công
nghệ thông tin.
Một hệ GIS thành công theo khía cạnh thiết kế và luật thương mại là được
mô phỏng và thực thi duy nhất cho mỗi tổ chức.
1.1.2 Các nhiệm vụ của GIS
Mục đích chung của các Hệ Thông tin địa lý là thực hiện sáu nhiệm vụ
sau:
Nhập dữ liệu
Thao tác dữ liệu
Quản lý dữ liệu
đơn giản là một phần mền quản lý cơ sở dữ liệu.
Có nhiều cấu trúc DBMS khác nhau, nhưng trong GIS cấu trúc quan hệ tỏ
ra hữu hiệu nhất. Trong cấu trúc quan hệ, dữ liệu được lưu trữ ở dạng các bảng.
Các trường thuộc tính chung trong các bảng khác nhau được dùng để liên kết các
bảng này với nhau. Do linh hoạt nên cấu trúc đơn giản này được sử dụng và triển
khai khá rộng rãi trong các ứng dụng cả trong và ngoài GIS.
1.1.2.4. Hỏi đáp và phân tích
Một khi đã có một hệ GIS lưu giữ các thông tin địa lý, có thể bắt đầu hỏi
các câu hỏi đơn giản như:
Ai là chủ mảnh đất ở góc phố?
Hai vị trí cách nhau bao xa?
Vùng đất dành cho hoạt động công nghiệp ở đâu?
Và các câu hỏi phân tích như:
Tất cả các vị trí thích hợp cho xây dựng các toà nhà mới nằm ở đâu?
Kiểu đất ưu thế cho rừng sồi là gì?
Nếu xây dựng một đường quốc lộ mới ở đây, giao thông sẽ chịu ảnh
hưởng như thế nào?
GIS cung cấp cả khả năng hỏi đáp đơn giản "chỉ và nhấn" và các công cụ
phân tích tinh vi để cung cấp kịp thời thông tin cho những người quản lý và phân
tích. Các hệ GIS hiện đại có nhiều công cụ phân tích hiệu quả, trong đó có hai
công cụ quan trọng đặc biệt:
Phân tích liền kề
Tổng số khách hàng trong bán kính 10 km khu hàng?
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
7
Tìm hiểu công nghệ WebGIS và ứng dụng
Những lô đất trong khoảng 60 m từ mặt đường?
Ðể trả lời những câu hỏi này, GIS sử dụng phương pháp vùng đệm để xác
định mối quan hệ liền kề giữa các đối tượng.
Phân tích xếp chồng
trên một hệ thống tọa độ nào đó. Đối với các đối tượng biểu diễn trên mặt phẳng,
mỗi đối tượng điểm được biểu diễn bởi một cặp tọa độ (x, y); đối tượng đường
được xác định bởi một chuỗi liên tiếp các điểm (vertex), đoạn thẳng được nối
giữa các điểm (vertex) hay còn gọi là cạnh (segment), điểm bắt đầu và điểm kết
thúc của một đường gọi là các nút (node); đối tượng vùng được xác định bởi các
đường khép kín.
Hai loại cấu trúc được biết đến trong cấu trúc dữ liệu vector là cấu trúc
Spaghetti và cấu trúc Topology. Cấu trúc Spaghetti ra đời trước và được sử dụng
cho đến ngày nay ở một số các phần mềm GIS như: phần mềm Arcview GIS,
ArcGIS, MapInfo,… Cấu trúc Topology ra đời trên nền tảng của mô hình dữ liệu
cung – nút (Arc - Node).
1.1.3.3 Ưu nhược điểm của cấu trúc Raster và Vecto
STT RASTER VECTOR
1 Cấu trúc dữ liệu đơn giản
Cấu trúc dữ liêu phức tạp hơn
raster
2
Các thao tác chập bản đồ thực
hiện dễ dàng và đơn giản
Các phép chập bản đồ khó thực
hiện được
3
Bài toán mô hình thực hiện dễ
dàng
Bài toán mô hình khó thực hiện
4 Dữ liệu cồng kềnh
Dữ liệu gọn (chiếm ít bộ nhớ)
hơn mô hình raster
5 Mối quan hệ topo khó có thể
thể hiện được. Bài toán mạng
Viễn thám là ngành khoa học nghiên cứu bề mặt trái đất sử dụng kỹ thuật
cảm biến như quay camera từ máy bay, các trạm thu GPS hoặc các thiết bị khác.
Các thiết bị cảm biến này thu thập dữ liệu dạng ảnh và cung cấp các khả năng
thao tác, phân tích và mô phỏng những ảnh này. Do thiếu các tính năng phân tích
và quản lý dữ liệu địa lý, nên không thể gọi là GIS thực sự.
DBMS (Hệ quản trị cơ sở dữ liệu)
Hệ quản trị cơ sở dữ liệu chuyên về lưu trữ và quản lý tất cả các dạng dữ
liệu bao gồm cả dữ liệu địa lý. Nhiều hệ GIS đã sử dụng DBMS với mục đích
lưu trữ dữ liệu. DBMS không có các công cụ phân tích và mô phỏng như GIS.
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
10
Tìm hiểu công nghệ WebGIS và ứng dụng
1.2 WebGIS và ứng dụng
1.2.1. Khái niệm
WebGIS là một hệ thống thông tin địa lý được phân bổ qua môi trường
mạng máy tính để tích hợp, phân phối và truyển tải thông tin địa lý trực diện
trên WWW (World Wide Web) thông qua Internet.
Yêu cầu của WebGIS là phải có phần mềm chạy trên nền độc lập, sử dụng
mạng theo tiêu chuẩn TCP/IP có thể kết nối đến Internet và trình duyệt Web.
1.2.2 Ứng dụng của WebGIS
Khả năng phân phối thông tin rộng rãi trên toàn cầu
Người dùng Internet có thể truy cập đến các ứng dụng GIS mà không phải
mua phần mềm.
Đối với phần lớn người dùng không có kinh nghiệm về GIS thì việc sử
dụng WebGIS sẽ đơn giản hơn việc sử dụng các ứng dụng GIS loại khác.
WebGIS cho phép thêm các chức năng GIS chạy trên cơ sở mạng như
thương mại, chính phủ, giáo dục. Nhiều ứng dụng loại này chạy trên mạng cục
bộ như một phương tiện phân phối và sử dụng dữ liệu địa lý không gian
(geospatial data).
Hiện nay trên thế giới có rất nhiều công nghệ WebGIS như công nghệ
1.3.1 Các đặc điểm và các thành phần cơ bản của Java
1.3.1.1. Các đặc điểm của ngôn ngữ lập trình Java
Sun Mycrosystem đã nêu lên đặc điểm của Java như sau:" Java là 1 ngôn
ngữ đơn giản, hướng đội tượng, phân tán, thông dịch lẫn biên dịch, mạnh mẽ,
bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động."
1.3.1.2. Các thành phần cơ bản của Java
Cũng như các ngôn ngữ lập trình khác, ngôn ngữ lập trình Java cũng bao
gồm các thành phần cơ bản của một ngôn ngữ lập trình:
Các kiểu dữ liệu cơ sở: Kiểu số nguyên, kiểu chấm động, kiểu char, kiểu
boolean.
Ghi chú: sử dụng ký hiệu
// ghi chú trên một dòng
/* ghi chú trên nhiều dòng */
Các từ khoá: đó là các từ dùng riêng trong Java, không được sử dụng các
từ khoá để đặt tên biến hay các định danh khác.
Khai báo biến và hằng
Các toán tử và biểu thức
Mảng
1.3.1.3. Cấu trúc điều khiển
Cấu trúc điều khiển là các lệnh kiểm tra và điều khiển quá trình thực hiện
các câu lệnh sao cho chương trình thực hiện đúng và đạt được yêu cầu đặt ra.
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
12
Tìm hiểu công nghệ WebGIS và ứng dụng
Cấu trúc lựa chọn: lệnh if, switchcase
Cấu trúc lặp: vòng lặp for, do … while, while
Lệnh break, continue và label (nhãn)
1.3.2 Xây dựng chương trình Java
1.3.2.1 Phương thức, lớp và chương trình Java
Chương trình của java được xây dựng từ lớp và lớp dùng phương thức để
tạo một đối tượng mới thông qua từ khoá new.
Mỗi lớp ngoài phải có ít nhất một phương thức tạo dựng không tham số.
Nếu người lập trình không viết phương thức tạo dựng cho lớp thì Java sẽ
gán cho lớp đó một phương thức tạo dựng mặc định khi biên dịch.
Cấu trúc của phương thức tạo dựng:
[Từ khóa] <tên lớp> (có hoặc không có đối số)
{ Khối lệnh }
Hình thức khai báo chồng phương thức
Java cho phép khai báo nhiều phương thức cùng tên nhưng khác tham
số( khác kiểu dữ liệu hoặc số lượng tham số) gọi là các phương thức khai báo
chồng hay phương thức ghi đè.
Phương thức tạo dựng cũng có thể được khai báo chồng.
Các phương thức khai báo chồng khác nhau về tham số sẽ được tạo các
đối tượng khác nhau trong lớp gọi nó.
Một số phương thức chuẩn trong Java
Đó là các phương thức chuẩn trong lớp Math, DateFormat (định dạng
ngày tháng), Theard (lp tuyến thi hành), ArrayList (lớp tạo danh sách)
Lớp (class)
Lớp được xem là một khuôn mẫu (template) của đối tượng. Lớp bao gồm
các vùng dữ liệu của đối tượng và các phương thức tác động lên các dữ liệu đó.
Lớp có tính kế thừa (inheritance); một lớp (subclass) có thể thứa kế tất cả
các vùng dữ liệu và các phương thức của một lớp khác (superclass).
Lớp còn có tính đa hình (polymorphism) cho phép cài đặt các lớp dẫn xuất
rất khác nhau từ cùng một lớp nguồn.
Định nghĩa một lớp:
class ClassName {
}
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
14
Tìm hiểu công nghệ WebGIS và ứng dụng
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
15
Tìm hiểu công nghệ WebGIS và ứng dụng
- Lớp ngoại lệ nhập/xuất
Gói (Packages)
Các lớp trong Java có thể đóng gói thành một bộ gọi là package, mỗi
package có một tên riêng.
Để khai báo một lớp là thành phần của một gói ta dùng câu lệnh package.
Interface
Để tránh đi tính phức tạp của đa thừa kế (multi-inheritance), Java thay thế
bằng giao tiếp (interface). Một lớp của Java chỉ có một siêu lớp trực tiếp nhưng
có thể cài đặt nhiều giao tiếp với các lớp khác để thừa hưởng thêm các vùng dữ
liệu và phương thức của các giao tiếp này.
Thread (phân lưồng)
Thread là một đơn vị hành động của hệ điều hành, một chương trình có thể
chia thành nhiều thread. Các thread trong mỗi chương trình sẽ được thực hiện
tuần tự và gần như đồng thời, chúng được giao tiếp với nhau qua các interface
hay được đồng bộ hóa (synchronized).
1.3.2.3 Lớp String
Java không cung cấp kiểu dữ liệu cơ sở String mà thay bằng lớp String.
Để khai báo hay khởi tạo một chuỗi ta có thể dùng các cách sau:
Cách 1:
String str1 = new String();
String str2 = new String(“Hello”);
Cách 2:
Char ch[ ] = {‘A’, ‘B’, ‘C’, ‘D’, ‘E’};
String str3 = new String(ch);
String str4 = new String(ch, 0, 2); // str4 gồm 2 phần tử “AB”
Có rất nhiểu phương thức được xây dựng trong lớp String, các phương
thức này được sử dụng để xử lý chuỗi.
Các hệ thống GUI xử lý các tương tác người dùng với sự trợ giúp của mô
hình hướng sự kiện (event-driven). Tương tác của người dùng có thể là di
chuyển chuột, nhấn phím, nhả phím v.v…Tất cả các thao tác này thiết lập một sự
kiện của một loại nào đó.
Việc xử lý những sự kiện này phụ thuộc vào ứng dụng. Abstract
Windowing Toolkit (AWT) xử lý một vài sự kiện. Môi trường mà các ứng dụng
này được thi hành ví dụ như trình duyệt cũng có thể xử lý các sự kiện khác.
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
17
Tìm hiểu công nghệ WebGIS và ứng dụng
Người lập trình cũng cần phải xử lý những sự kiện nhất định và cần phải viết
hàm xử lý các sự kiện đó.
Menu
Ngôn ngữ Java có một tập hợp các lớp đối tượng để tạo các menu. Có hai
loại menu – pull down và pop-up. Menu làm cho ứng dụng ta xây dựng dễ sử
dụng hơn. Ta chỉ có đặt duy nhất một thanh menubar trong một frame. Menubar
là một thanh nằm ngang được đặt tại đỉnh của frame. Nó liệt kê các mục chọn
khác nhau hay còn gọi là menu. Một menu độc lập có thể chứa các mục chọn
con, các mục con này được gọi là Menu Item. Java cung cấp các Checkbox
MenuItem, chúng có thể được bật hay mở, phụ thuộc vào trạng thái.
1.3.4. Đối tượng đồ hoạ (Graphics)
Java cung cấp gói AWT cho phép ta vẽ các hình đồ hoạ. Lớp Graphics bao
gồm tập hợp rất nhiều phương thức. Nhưng phương thức này được sử dụng để vẽ
bất cứ hình nào trong các hình như: đoạn thẳng, hình chữ nhật, elip, hình tròn,
hình đa giác, …
Phương thức drawString của đối tượng Gragphics giúp ta vẽ ra văn bản
hay chữ ra màn hình. Văn bản hay chữ có thể được trình bày bằng nhiểu phông
chữ khác nhau.
Phương thức drawImage dùng để vẽ ảnh ra màn hình, ta có thể vẽ ảnh vào
Applet hoặc vào cửa sổ ứng dụng.
nhớ, thời gian thực thi của vi xử lý, không gian đĩa được trả
về cho hệ thống.
Bảng 1.1: Các phương thức của một applet
Điều quan trọng là không phải lúc nào applet cũng bắt đầu từ ban đầu. Mà
nó bắt đầu từ vị trí tiếp theo của quá trình thực thi trước đó.
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
19
Tìm hiểu công nghệ WebGIS và ứng dụng
Ngoài những phương thức cơ bản này, còn có những phương thức
‘paint()’ và ‘repaint()’. Phương thức paint() dùng để hiển thị một đường thẳng
(line), text, hoặc một hình ảnh trên nền applet. Đối số của phương thức này là đối
tượng của lớp Graphics. Lớp này thuộc gói java.awt. Câu lệnh sau được dùng để
import lớp Graphics:
import java.awt.Graphics;
Phương thức ‘repaint()’ được dùng khi cửa sổ cần cập nhật lại. Phương
thức này chỉ cần một thông số. Tham số này là đối tượng của lớp Graphics.
Applet sử dụng phương thức ‘showStatus()’ để hiển thị thông tin trên
thanh trạng thái. Phương thức có tham số thuộc kiểu dữ liệu String. Để lấy các
thông tin của applet, user có thể overide phương thức ‘getAppletInfo()’ của lớp
Applet. Phương thức này trả về 1 đối tượng kiểu String.
Khai báo lớp cho Applet
Dùng lệnh khai báo lớp:
public class Ten_Lop extends Applet
{ }
Ở đây, Ten_Lop là tên tượng trưng, về sau khi viết Applet ta sẽ dùng các
tên cụ thể.
Tạo trang web có thẻ Applet bên trong
Cấu trúc thẻ Applet:
<APPLET CODE = "LopApplet.class" WIDTH = X HEIGHT = Y>
</APPLET>
4. www.javavietnam.org
5. Giáo trình Lý thuyết và Bài tập Java _ Trần Tiến Dũng (Nhà xuất bản Lao
Động Xã Hội).
6. Ngôn ngữ lập trình Java _ Đoàn Ngọc Tăng (Nhà xuất bản Đại Học Sư
Phạm).
7. Những bài giảng về Lập trình Java
Nguyễn Thị Thu Hoài_Đại học Kinh Tế Quốc Dân_K46
22