Tải bản đầy đủ (.pdf) (183 trang)

tìm hiểu các dịch vụ WEB cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 183 trang )

LỜI CẢM ƠN
Chúng em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học
Khoa Học Tự Nhiên TpHCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài
luận văn tốt nghiệp này.
Chúng em xin chân thành cám ơn Thầy Lê Thụy Anh đã tận tình hướng dẫn, chỉ
bảo chúng em trong suốt thời gian thực hiện đề tài.
Chúng em xin chân thành cám ơn quý Thầy Cơ trong Khoa đã tận tình giảng
dạy, trang bị cho chúng em những kiến thức quý báu trong những năm học vừa qua.
Chúng con xin nói lên lịng biết ơn sâu sắc đối với Ông Bà, Cha Mẹ đã chăm
sóc, ni dạy chúng con thành người.
Xin chân thành cám ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên
chúng em trong thời gian học tập và nghiên cứu.
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng
cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em kính
mong nhận được sự cảm thơng và tận tình chỉ bảo của q Thầy Cơ và các bạn.
Nhóm sinh viên thực hiện
Nguyễn Trung Kiên – Nguyễn Nguyên Bảo
Tháng 07/ 2005

i


LỜI NÓI ĐẦU
Vào thời đại ngày nay, việc phát triển phần mềm khơng đơn thuần chỉ là ngồi gõ
chương trình như thời buổi ban đầu. Ngày nay, nhu cầu phát triển và mở rộng phần
mềm ngày càng đòi hỏi cao hơn, nhanh hơn và chuyên nghiệp hơn. Người sử dụng
phần mềm khơng chỉ là những người dùng bình thường mà còn là những nhà xây
dựng, phát triển phần mềm khác. Người phát triển phần mềm khơng cịn xây dựng
phần mềm của mình từ chỗ khơng có gì, họ sẽ sử dụng lại cac phần mềm của những
nhà phát triển khác. Từ đó, nhu cầu đóng gói, trao đổi và mua bán các gói phần
mềm ngày càng tăng cao. Vào thời đại ngày nay, với sự phát triển của Internet cùng


với các công nghệ hướng Net khác kèm theo, việc trao đổi, mua bán các gói phần
mềm và việc thực thi chúng ngày càng thuận lợi và nhanh chóng hơn. Từ đó, dẫn
đến sự ra đời của nhiều giải pháp phát triển phần mềm khác nhau, chẳng hạn như
DCOM, RMI, CORBRA,… Nhưng trong đó, nổi bật và chiếm nhiều ưu điểm nổi
trội phải kể đến giải pháp phát triển phần mềm dựa trên Kiến trúc Hướng Dịch vụ
(SOA – Service Oriented Architecture) và triển khai trên cơ chế Web Service.
Việc áp dụng giải pháp dịch vụ web cho ứng dụng GIS đang được triển khai
ngày càng rộng rãi. Do nó hồn toàn giải quyết được các yêu cầu đặt ra bởi các ứng
dụng GIS.
Chính vì thế, việc tiến hành nghiên cứu kỹ thuật lập trình Web Service là một
hướng nghiên cứu mang tính chiến lược cho sự phát triển các ứng dụng trong tương
lai. Đề tài luận văn của chúng em là “Tìm hiểu về dịch vụ web cho ứng dụng GIS
và xây dựng ứng dụng minh họa khai thác dịch vụ” gồm có tất cả 8 chương.
Chương 1. Tổng quan: Giới thiệu khái quát về Web Service, GIS, chuẩn
OpenGIS và mục tiêu của đề tài.
Chương 2. Web Map Service (WMS): Nghiên cứu chuẩn WMS do OpenGIS
đưa ra, chuẩn này hỗ trợ việc hiển thị bản đồ thông qua dịch vụ web.

ii


Chương 3. Web Feature Service (WFS): Nghiên cứu chuẩn WFS do OpenGIS
đưa ra, chuẩn này hỗ trợ cho việc truy vấn thông tin các dữ liệu địa lý qua dịch vụ
web.
Chương 4. Bộ lọc (Filter): Nghiên cứu sâu hơn về bộ lọc dùng trong dịch vụ
WFS.
Chương 5. CarbonTool: Nghiên cứu công cụ CarbonTool hỗ trợ cho việc đọc
các chuẩn WMS và WFS.
Chương 6. Cài đặt chương trình OpenGISServer: Mơ tả việc xây dựng
chương trình server hỗ trợ hai chuẩn WMS và WFS của OpenGIS.

Chương 7. Cài đặt chương trình client: Mô tả việc xây dựng hai ứng dụng
khách khai thác hai dịch vụ WMS và WFS.
Chương 8. Tổng kết: Tổng kết quá trình nghiên cứu và rút ra hướng phát triển
trong tương lai.

iii


MỤC LỤC
MỤC LỤC .........................................................................................................................iv
DANH SÁCH HÌNH ........................................................................................................ix
DANH SÁCH BẢNG ........................................................................................................x
DANH SÁCH BẢNG ........................................................................................................x
MỘT SỐ THUẬT NGỮ ..................................................................................................xi
Chương 1. Tổng quan ......................................................................................................1
1.1. Đặt vấn đề và mục tiêu đề tài ........................................................................1
1.2. Giới thiệu Web Service..................................................................................3
1.3. Giới thiệu hai chuẩn WMS và WFS ............................................................3
Chương 2. Web Map Service (WMS)...........................................................................5
2.1. Giới thiệu .........................................................................................................5
2.2. Các element cơ sở...........................................................................................5
2.2.1.

Đánh số và thỏa thuận phiên bản (version) ...............................5

2.2.2.

Những quy tắc chung trong HTTP request ...............................7

2.2.3.


Những quy tắc chung trong HTTP response.............................8

2.2.4.

Những quy tắc về tham số trong câu request ............................8

2.2.5.

Các tham số thông dụng trong câu request ...............................9

2.2.6.

Kết quả dịch vụ ...........................................................................13

2.2.7.

Biệt lệ dịch vụ .............................................................................13

2.3. Các operation của Web Map Service .........................................................14
2.3.1.

GetCapabilities ...........................................................................14

2.3.2.

GetMap ........................................................................................26

2.3.3.


GetFeatureInfo ............................................................................32

iv


Chương 3. Web Feature Service (WFS) ....................................................................36
3.1. Giới thiệu .......................................................................................................36
3.2. Các thành phần dịch vụ cơ sở .....................................................................38
3.2.1.

Mã hóa câu request.....................................................................38

3.2.2.

Không gian tên ............................................................................38

3.3. Các thành phần chung ..................................................................................38
3.3.1.

Định danh của Feature (Feature identifier) .............................38

3.3.2.

Định danh duy nhất toàn cầu ....................................................39

3.3.3.

Trạng thái của Feature (Feature State) .....................................40

3.3.4.


Tên của các thuộc tính ...............................................................40

3.3.5.

Tham chiếu đến thuộc tính ........................................................41

3.3.6.

Thành phần <Native> ................................................................47

3.3.7.

Filter .............................................................................................48

3.3.8.

Thông báo về các biệt lệ (Exception Reporting) ....................48

3.3.9.

Các thuộc tính XML chung .......................................................49

3.4. DescribeFeatureType ...................................................................................50
3.4.1.

Giới thiệu .....................................................................................50

3.4.2.


Request ........................................................................................50

3.4.3.

Response ......................................................................................51

3.4.4.

Biệt lệ ...........................................................................................52

3.5. GetFeature .....................................................................................................52
3.5.1.

Giới thiệu .....................................................................................52

3.5.2.

Request ........................................................................................53

3.5.3.

Response ......................................................................................55

3.5.4.

Biệt lệ ...........................................................................................56

3.6. LockFeature...................................................................................................56
3.6.1.


Giới thiệu .....................................................................................56

3.6.2.

Request ........................................................................................57

3.6.3.

Response ......................................................................................58

v


3.6.4.

Biệt lệ ...........................................................................................59

3.7. Transaction ....................................................................................................60
3.7.1.

Giới thiệu .....................................................................................60

3.7.2.

Request ........................................................................................60

3.7.3.

Response ......................................................................................69


3.7.4.

Biệt lệ ...........................................................................................72

3.8. GetCapabilities .............................................................................................72
3.8.1.

Giới thiệu .....................................................................................72

3.8.2.

Request ........................................................................................72

3.8.3.

Response ......................................................................................73

3.8.4.

Biệt lệ ...........................................................................................73

Chương 4. Bộ lọc (Filter) ...............................................................................................74
4.1. Giới thiệu:......................................................................................................74
4.2. Sử dụng Filter: ..............................................................................................74
4.3. Đặc tả của Filter: ..........................................................................................74
4.4. Các phép tốn khơng gian (Spatial Operators) .........................................75
4.4.1.

Mục đích ......................................................................................75


4.4.2.

Mơ tả ............................................................................................75

4.5. Các phép tốn so sánh (Comparison operators) .......................................78
4.5.1.

Giới thiệu:....................................................................................78

4.5.2.

Mô tả: ...........................................................................................78

4.6. Các phép tốn Logic ....................................................................................82
4.6.1.

Giới thiệu:....................................................................................82

4.6.2.

Mơ tả: ...........................................................................................82

4.7. Định danh của Feature (Feature Identifier): ..............................................83
4.7.1.

Giới thiệu:....................................................................................83

4.7.2.

Mô tả: ...........................................................................................84


vi


4.8. Biểu thức (Expressions): .............................................................................84
4.8.1.

Giới thiệu:....................................................................................84

4.8.2.

Mô tả: ...........................................................................................84

4.9. Các phép tốn số học: ..................................................................................84
4.9.1.

Giới thiệu:....................................................................................84

4.9.2.

Mơ tả: ...........................................................................................84

4.10. Các hàm (Functions) ....................................................................................85
4.10.1. Giới thiệu:....................................................................................85
4.10.2. Mô tả: ...........................................................................................86
4.11. Các khả năng về Filter: ................................................................................86
Chương 5. Carbon Tool .................................................................................................91
5.1. Giới thiệu .......................................................................................................91
5.2. Một số ví dụ về việc sử dụng bộ thư viện CarbonTools..........................92
5.2.1.


Dùng CarbonTools thực hiện GetCapabilities request ..........92

5.2.2.

Dùng CarbonTools thực hiện GetFeature request ..................96

5.3. Dùng CarbonTools gởi GetMap request .................................................102
5.3.1.

Lớp CarbonTools.Core.WMS.SourceWMS ........................102

5.3.2.

Lớp CarbonTools.Core.Base.DataRaster ..............................103

5.3.3.

Lớp CarbonTools.Core.WMS.HandlerWMS .......................103

5.3.4.

Vi dụ thực hiện GetMap request.............................................104

5.4. Dùng CarbonTools gởi DescribeFeatureType request ..........................105
5.5. Dùng CarbonTools gởi request của Transaction và LockFeature ........106
Chương 6. Cài đặt chương trình OpenGIS Server ...............................................107
6.1. Giới thiệu .....................................................................................................107
6.2. Tổ chức và lưu trữ dữ liệu .........................................................................107
6.3. Giao tiếp với client bằng giao thức HTTP ..............................................114

6.3.1.

Nhận dữ liệu từ client bằng giao thức HTTP GET: .............114

6.3.2.

Nhận dữ liệu từ client bằng giao thức HTTP POST ............114

vii


6.3.3.

Trả kết quả về cho Client.........................................................115

6.4. Đọc dữ liệu từ chuỗi XML ........................................................................115
6.4.1.

Ví dụ đọc 1 tài liệu Xml ..........................................................115

6.5. Các lớp trong chương trình .......................................................................118
Chương 7. Cài đặt các chương trình client .............................................................126
7.1. Cài đặt chương trình OpenGisClientDemo .............................................126
7.1.1.

Giới thiệu ...................................................................................126

7.1.2.

Gởi request cho server .............................................................135


7.2. Cài đặt chương trình OpenGisClientApplication ...................................144
7.2.1.

Tính năng ...................................................................................144

7.2.2.

Màn hình giao diện...................................................................145

Chương 8. Tổng kết ......................................................................................................147
8.1. Kết quả đạt được.........................................................................................147
8.2. Hướng phát triển .........................................................................................147
PHỤ LỤC - MySQL với phần mở rộng hỗ trợ cho OpenGIS ...........................148
TÀI LIỆU THAM KHẢO ...........................................................................................171

viii


DANH SÁCH HÌNH
Hình 1.1.

Kiến trúc các dịch vụ web của OGC .......................................................4

Hình 2.1.

Hình chữ nhật bao..................................................................................12

Hình 3.1.


Lược đồ giao thức..................................................................................37

Hình 7.1.

Màn hình chính ....................................................................................127

Hình 7.2.

Màn hình minh họa thực hiện request WFS – GetCapabilities ...........128

Hình 7.3.

Màn hình minh họa thực hiện request WFS – DescribeFeatureType..129

Hình 7.4.

Màn hình minh họa thực hiện request WFS – GetFeature ..................130

Hình 7.5.

Màn hình minh họa thực hiện request WFS – GetFeature ..................131

Hình 7.6.

Màn hình minh họa thực hiện request WFS – Transaction .................132

Hình 7.7.

Màn hình minh họa thực hiện request WMS – GetCapabilities..........133


Hình 7.8.

Màn hình minh họa thực hiện request WMS – GetMap......................134

Hình 7.9.

Màn hình giao diện chương trình OpenGISClientApplication............145

Hình 7.10. Màn hình lấy thơng tin một điểm trên bản đồ .....................................146

ix


DANH SÁCH BẢNG
Bảng 2.1. Các ký tự quy ước trong câu HTTP GET URL ..........................................7
Bảng 2.2. Danh sách các kiểu MIME ..........................................................................10
Bảng 2.3. Các tham số trong GetCapabilities request URL .....................................14
Bảng 2.4. Mối quan hệ giữa giá trị UpdateSequence trong client và server...........15
Bảng 2.5. Thuộc tính lớp ...............................................................................................23
Bảng 2.6. Qui định kế thừa các thuộc tính lớp ...........................................................26
Bảng 2.7. Các tham số trong GetMap request ............................................................27
Bảng 2.8. Các tham số của request GetFeatureInfo ...................................................33
Bảng 5.1. Các thuộc tính của SourceOGCCapabilities .............................................92
Bảng 5.2. Các thuộc tính quan trọng của DataOGCCapabilities .............................93
Bảng 5.3. Các thuộc tính của HandlerOGCCapabilities ...........................................94
Bảng 5.4. Các thuộc tính của CarbonTools.Core.WFS.SourceWFS .......................97
Bảng 5.5. Các thuộc tính của CarbonTools.Core.Features.DataFeatures ...............97
Bảng 5.6. Các thuộc tính của CarbonTools.Core.WFS.HandlerWFS .....................98
Bảng 5.7. Các thuộc tính của CarbonTools.Core.WMS.SourceWMS ..................103
Bảng 5.8. Các thuộc tính của CarbonTools.Core.Base.DataRaster .......................103

Bảng 5.9. Các thuộc tính của CarbonTools.Core.WMS.HandlerWMS ................104
Bảng 6.1. Các bảng dữ liệu trong CSDL TpHCM ...................................................108
Bảng 6.2. Cấu trúc chung của các bảng dữ liệu .......................................................109
Bảng 6.3. Bảng “duong”..............................................................................................110
Bảng 6.4. Bảng “quan” ................................................................................................111
Bảng 6.5. Bảng “song” ................................................................................................111
Bảng 6.6. Bảng “tuyensinh” .......................................................................................112
Bảng 6.7. Bảng “ypagesit” ..........................................................................................113
Bảng 6.8. Các lớp trong chương trình .......................................................................125

x


MỘT SỐ THUẬT NGỮ
Operation

Đặc tả của phép biến đổi hoặc truy vấn trên một đối
tượng có thể được gọi thực thi.

Client

Phần mềm có thể gọi operation từ server

Request

Lời yêu cầu operation của client cho server.

Response

Kết quả trả về của operation mà serve gửi cho client.


Tài liệu Capabilities XML

Tài liệu metadata mô tả các operation mà một dịch vụ
hỗ trợ.

OGC

Tổ chức Open GIS Consortium

OWS – OGC Web Service

Các dịch vụ web của OGC

WMS

Dịch vụ Web Map Service

WFS

Dịch vụ Web Feature Service

xi


Chương 1. Tổng quan

Chương 1.

Tổng quan


1.1. Đặt vấn đề và mục tiêu đề tài
Hệ thống thông tin địa lý (GIS) là một cơng cụ máy tính để lập bản đồ và phân
tích các sự vật, hiện tượng thực trên trái đất. GIS lưu giữ thông tin về thế giới thực
dưới dạng tập hợp các lớp chuyên đề có thể liên kết với nhau nhờ các đặc điểm địa
lý.
Điều này đơn giản nhưng vô cùng quan trọng và là một công cụ đa năng đã được
chứng minh là rất có giá trị trong việc giải quyết nhiều vấn đề thực tế, từ thiết lập
tuyến đường phân phối của các chuyến xe, đến lập báo cáo chi tiết cho các ứng
dụng quy hoạch, mơ phỏng sự lưu thơng khí quyển tồn cầu, cho đến việc xác lập
các hệ định vị toàn cầu.
Hiện nay, công nghệ GIS được nghiên cứu ứng dụng đa dạng, đa tầng trong
nhiều lĩnh vực khác nhau (phân tích các sự kiện, dự đoán tác động và hoạch định
chiến lược). Các chuyên gia của mọi lĩnh vực đều nhận thức được những ưu điểm
của sự kết hợp công việc của họ và GIS.
Chính vì thế, việc tìm hiểu các dịch vụ web cho ứng dụng GIS và xây dựng ứng
dụng minh họa khai thác dịch vụ không chỉ là một u cầu mang tính khoa học của
ngành cơng nghệ thơng tin mà cịn là một địi hỏi của chính thực tiễn đời sống trong
bối cảnh tồn cầu hố.
u cầu ứng dụng công nghệ GIS đang phát triển cả về chiều rộng lẫn chiều sâu
đang đặt ra nhiều thách thức kỹ thuật trong q trình thu thập, phân tích và xử lý dữ
liệu với khối lượng lớn.
Các dữ liệu GIS từ nhiều nguồn và có thể được định dạng theo nhiều chuẩn khác
nhau. Do đó, khi khai thác dữ liệu này, người sử dụng dễ vấp phải những trở ngại
lớn về vấn đề tính tương thích, cũng như những rắc rối trong việc mua bán phần
mềm, làm quen với việc sử dụng phần mềm, chưa kể đến việc phải bỏ ra một lượng
tiền lớn để mua toàn bộ các dữ liệu do nhà cung cấp xây dựng, trong khi hầu hết các

1



Chương 1. Tổng quan

trường hợp ta chỉ cần một phần thơng tin trong đó mà thơi. Các dữ liệu này được
đưa về và lưu trữ tập trung ở một nơi, lại phải bỏ ra một khoản tiền không nhỏ khác
cho việc lưu trữ, bảo trì và cập nhật chúng. Rõ ràng là tiêu phí cơng sức, thời gian,
và tiền bạc một cách vơ ích.
Để khắc phục những trở ngại này, việc tiến hành xây dựng các dịch vụ web hỗ
trợ GIS là một giải pháp tốt hiện đang được rất nhiều nơi trên thế giới và trong nước
triển khai thực hiện. Thay vì dồn các dữ liệu lại một nơi và xử lý tập trung trên đó,
giải pháp dịch vụ web lại đi theo con đường xử lý phân tán. Mọi thông tin yêu cầu
và đáp ứng đều được gửi và nhận thông qua Internet.
Nhờ mang lại được những tiện ích thiết thực, các dịch vụ web hỗ trợ GIS đang
ngày càng phát triển nhanh và rộng khắp đến mức làm nảy sinh nhu cầu xây dựng
một chuẩn chung áp dụng rộng rãi trên toàn cầu dành riêng cho các dịch vụ web hỗ
trợ GIS, nhằm đáp ứng mục tiêu hợp tác, giao tiếp được với các dịch vụ web hỗ trợ
GIS trên phạm vi toàn cầu. Nhận thấy yêu cầu đó, tổ chức OGC đã đưa ra các chuẩn
chung thống nhất cho các dịch vụ web hỗ trợ GIS. Trong đó, hai chuẩn được xem là
cơ sở và sử dụng phổ biến nhất là Web Map Service (WMS) và Web Feature
Service (WFS).
Hiện nay, trên thế giới và ở nước ta đã có rất nhiều nơi tiến hành nghiên cứu và
xây dựng các server cung cấp các dịch vụ WMS và WFS nhằm hỗ trợ cho các bài
tốn về thơng tin địa lý ở những mức độ khác nhau. Tuy nhiên hầu như chỉ có một
số giải pháp được tiến hành theo hướng cung cấp các dịch vụ web trên cơ sở hỗ trợ
tối đa mọi hàm thuộc hai chuẩn WMS và WFS. Do đó, luận văn này hướng vào
mục tiêu nghiên cứu và xây dựng thành công server hỗ trợ đầy đủ các giao tác của
hai dịch vụ WMS và WFS, đồng thời xây dựng các ứng dụng client minh họa khả
năng của server này.
Lý do chọn chuẩn WMS và WFS là do nó đạt tính chuẩn hóa và tính quốc tế
cao, được sử dụng phổ biến và được kiểm nghiệm nghiêm ngặt.


2


Chương 1. Tổng quan

1.2. Giới thiệu Web Service
Web Service thực chất là sự kết hợp các máy tính cá nhân với các thiết bị khác,
là một phương thức tích hợp các cơ sở dữ liệu và các mạng để tạo thành một cơ cấu
tính tốn ảo mà người sử dụng có thể làm việc thơng qua các trình duyệt Web. Bản
thân các dịch vụ này hoạt động thông qua các server trên nền Web chứ khơng phải
là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính cá nhân
lên Internet. Người sử dụng có thể sử dụng các dịch vụ thông qua bất kỳ loại máy
nào có hỗ trợ Web Service và có khả năng truy cập Internet, kể cả các thiết bị cầm
tay.
Người sử dụng có thể truyền các dữ liệu và các ứng dụng từ máy tính cá nhân tới
các server của một nhà cung cấp Web Service. Các server này trở thành nguồn tiềm
nǎng cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả nǎng truy
nhập.
Các server ứng dụng sẽ là một phần quan trọng của các Web Service bởi vì
thơng thường, các server này thực hiện các ứng dụng phức tạp dựa trên sự chuyển
giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở dữ liệu của
một tổ chức nào đó.

1.3. Giới thiệu hai chuẩn WMS và WFS
Tổ chức OpenGis (OGC – OpenGis Consortium) đã đưa ra ba chuẩn dịch vụ
truy cập thơng tin địa lý mang tính chuẩn hóa cao là :Web Map Service (WMS),
Web Feature Service (WFS) và Web Coverage Service (WCS). Ngồi ra cịn có các
chuẩn khác như GeoParser và GeoCoder. Hình sau đây mơ ta sơ đồ kiến trúc các
dịch vụ Web của tổ chức OGC.


3


Chương 1. Tổng quan

Hình 1.1.Kiến trúc các dịch vụ web của OGC

Trong đó, hai chuẩn WMS và WFS là hai chuẩn cơ bản được sử dụng rất nhiều
nhằm cung cấp các dịch vụ biểu diễn các thông tin địa lý ra ảnh bản đồ và truy vấn
các dữ liệu địa lý đó.

4


Chương 2. Web Map Service (WMS)

Chương 2.

Web Map Service (WMS)

2.1. Giới thiệu
Web Map Service (WMS) là một dịch vụ giúp tạo ra các bản đồ dựa trên các dữ
liệu địa lý. Bản đồ ở đây được hiểu như một cách thể hiện trực quan của dữ liệu địa
lý còn bản thân bản đồ không được xem là dữ liệu. Các bản đồ này được hiển thị
dưới các định dạng ảnh như PNG, GIF, JPEG hoặc các định dạng thành phần đồ
họa vector như SVG (Scalable Vector Graphics),

WebCGM (Web Computer


Graphics Metafile). Một WMS sẽ hỗ trợ ba operation, trong đó hai operation đầu là
bắt buộc cho mọi WMS.
1) GetCapabilities: cung cấp các thơng tin metadata ở mức dịch vụ, đó là đặc tả
cho các thông tin của dịch vụ WMS và các tham số cần thiết cho các câu yêu cầu
request.
2) GetMap: cung cấp ảnh bản đồ khi nhận được các tham số về chiều và thông
tin không gian địa lý hợp lệ.
3) GetFeatureInfo: truy vấn thông tin của các feature trên bản đồ.
Trình duyệt web có thể u cầu WMS thực hiện các operation này bằng cách gửi
các câu request dưới dạng URL. Nội dung của câu URL này phụ thuộc vào việc gọi
thực hiện tác vụ nào.

2.2. Các element cơ sở
2.2.1. Đánh số và thỏa thuận phiên bản (version)
2.2.1.1. Cách thức đánh số phiên bản
Mỗi phiên bản được biểu diễn bằng một bộ số gồm ba số nguyên dương, cách
nhau bởi dấu “.”, nó có dạng như sau “x.y.z”. Trong đó hai số “y” và “z” khơng
vượt q 99. Mỗi đặc tả OWS được đánh số độc lập.

5


Chương 2. Web Map Service (WMS)

2.2.1.2. Thay đổi phiên bản
Mỗi một bộ số phiên bản của một đặc tả sẽ được đánh số lại tương ứng với mỗi
lần thay đổi đặc tả đó. Bộ số này sẽ được tăng đều và vẫn khơng nhiều hơn ba số
ngun. Có thể các lần tăng sẽ không liên tục nhau.
Số phiên bản xuất hiện trong ít nhất hai chỗ: một ở trong tài liệu Capabilities
XML mô tả dịch vụ, và một trong danh sách tham số của câu request yêu cầu dịch

vụ do client gửi. Mỗi dịch vụ có thể hỗ trợ nhiều phiên bản, và mỗi client có thể
hiểu được nhiều phiên bản. Khi client gửi một câu request yêu cầu dịch vụ thì số
phiên bản trong danh sách tham số của câu request này phải được dịch vụ đó hỗ trợ,
nếu không client sẽ tiến hành thỏa thuận với dịch vụ để chọn ra phiên bản đặc tả
phù hợp. Nếu không thỏa thuận được thì sẽ ngừng liên lạc. Quá trình thỏa thuận
được thực hiện qua operation GetCapabilities và tuân theo qui tắc sau:
Tất cả tài liệu Capabilities XML đều có trong đó một con số phiên bản. Khi
client gửi một request GetCapabilities dịch vụ sẽ xem phiên bản này có phù hợp với
phiên bản trong đặc tả hay không, nếu không sẽ tiến hành thỏa thuận để đạt được
phiên bản phù hợp. Nếu trong request khơng có số phiên bản thì server sẽ đáp ứng
lại với phiên bản cao nhất mà nó hiểu.
Việc thỏa thuận phiên bản được tiến hành theo trình tự sau:
1)Nếu server hiểu được phiên bản trong câu request thì nó sẽ gửi phiên bản này.
2a)Nếu server khơng hiểu được phiên bản trong câu request thì nó sẽ gửi lại
phiên bản cao nhất nhỏ hơn phiên bản này.
2b)Nếu phiên bản trong câu request nhỏ hơn bất cứ phiên bản nào mà server hỗ
trợ thì server sẽ gửi lại phiên bản nhỏ nhất mà nó hỗ trợ.
3a)Nếu client vẫn không hiểu phiên bản mới mà server mới gửi lại, thì nó hoặc
là ngừng liên lạc với server hoặc là gửi lại một request mới với phiên bản mà client
hiểu song nhỏ hơn phiên bản mà server vừa gửi. (nếu phiên bản server gửi nhỏ hơn
phiên bản client đã yêu cầu)

6


Chương 2. Web Map Service (WMS)

3b)Nếu phiên bản server gửi lớn hơn phiên bản client đã yêu cầu và client vẫn
khơng hiểu thì nó sẽ gửi lại một request mới với phiên bản lớn hơn phiên bản server
đã gửi.

Việc thỏa thuận cứ tiếp diễn cho đến khi cả hai đều hiểu được phiên bản thỏa
thuận hoặc đến khi client quyết định ngừng liên lạc với server.
Ví dụ 1: Server hiểu các phiên bản 1, 2, 4, 5 và 8. Client hiểu các phiên bản 1, 3,
4, 6 và 7. Client yêu cầu phiên bản 7. Server trả về phiên bản 5. Client gửi lại yêu
cầu khác với phiên bản 4. Server trả về phiên bản 4, client đồng ý và kết thúc q
trình thương thảo thành cơng.
Ví dụ 2: Server hiểu các phiên bản 4, 5 và 8. Client hiểu phiên bản 3. Client yêu
cầu phiên bản 3. Server trả về phiên bản 4. Client không hiểu phiên bản này và bất
cứ phiên bản cao hơn nào khác do đó quá trình thương thảo thất bại. Client ngừng
liên lạc với server.
2.2.2. Những quy tắc chung trong HTTP request
2.2.2.1. HTTP GET
Các ký tự quy ước trong câu HTTP GET URL
Ký tự

Ý nghĩa

?

Phân cách phần đầu của câu truy vấn.

&

Phân cách các tham số trong câu truy vấn.

=

Phân cách tên và giá trị của tham số.

/


Phân cách kiểu MIME và kiểu con trong giá trị tham số định dạng.

:

Phân cách giữa Namespace và Identifier trong tham số SRS.

,

Phân cách giữa các giá trị riêng biệt trong danh sách tham số.
Bảng 2.1.Các ký tự quy ước trong câu HTTP GET URL

HTTP GET request thực chất là một tiền tố URL được gắn thêm vào các tham
số để tạo nên một câu request hợp lệ đến operation.

7


Chương 2. Web Map Service (WMS)

Tiền tố URL bao gồm giao thức, tên host, số port, đường dẫn và dấu chấm hỏi
“?”.
Các tham số là các cặp tên/giá trị và phân cách nhau bởi dấu “&”
Một HTTP GET URL sẽ có dạng như sau:
http://host[:port]/path?{name[=value]&}

2.2.2.2. HTTP POST
Các request cho operation sử dụng HTTP POST chưa được định nghĩa trong
WMS.
2.2.3. Những quy tắc chung trong HTTP response

Khi nhận được một request hợp lệ, dịch vụ sẽ gửi về một response tương ứng
đúng với những gì request yêu cầu ngọai trừ trường hợp xảy ra thỏa thuận phiên bản
thì có thể cho kết quả khác.
Khi nhận được một request không hợp lệ, dịch vụ sẽ gửi về một ngoại biệt dịch
vụ (Service Exception).
Các đối tượng trả về trong response phải theo kiểu MIME (Multipurpose
Internet Mail Extensions).
2.2.4. Những quy tắc về tham số trong câu request
Tên tham số không phân biệt hoa thường.
Giá trị của tham số có phân biệt hoa thường.
Trật tự các tham số có thể tùy ý.
Các tham số có giá trị là một danh sách thì các giá trị được phân cách nhau
bởi dấu phẩy “,”, không được dùng khoảng trắng để phân cách.
Các tham số có giá trị là một danh sách thì khi có một giá trị nào đó là trống
thì để trống giá trị đó (“,,”)

8


Chương 2. Web Map Service (WMS)

2.2.5. Các tham số thông dụng trong câu request
2.2.5.1. VERSION
Tham số VERSION đặc tả số phiên bản. Định dạng và quá trình thỏa thuận
phiên bản đã được đề cập ở trên.
2.2.5.2. REQUEST
Tham số REQUEST chỉ ra operation nào trong dịch vụ cần được thực thi. Giá trị
của nó là tên của một trong các operation mà OWS hỗ trợ.
2.2.5.3. FORMAT
Tham số FORMAT chỉ ra định dạng trả về của response cho một operation.

Một dịch vụ có thể chỉ hỗ trợ một tập con các định dạng được biết của các kiểu
trong operation. Server sẽ quảng cáo các định dạng mà nó hỗ trợ trong tài liệu
Capabilities XML và chấp nhận đáp ứng tất cả các request yêu cầu các định dạng
mà nó hỗ trợ. Nếu như request có một định dạng khơng được cung cấp bởi server
thì server sẽ gửi đi một biệt lệ dịch vụ (với mã “InvalidFormat”).
Ngược lại, một client cũng có thể chỉ chấp nhận được một tập con các định dạng
được biết của các kiểu trong operation. Nếu client và dịch vụ không cùng đưa ra
được một định dạng chung (cùng hỗ trợ) thì hoặc là client ngừng liên lạc với dịch
vụ đó, hoặc là tìm một nhà cung cấp dịch vụ trung gian có khả năng chuyển đổi các
định dạng, hoặc là dùng phương pháp khác (chẳng hạn như lưu xuống bộ nhớ hoặc
chuyển qua ứng dụng giúp đỡ).
Các định dạng trong cả tài liệu Capabilities XML và trong request đến operation
đều có kiểu MIME. Mỗi operation có một danh sách các định dạng hỗ trợ riêng biệt.

9


Chương 2. Web Map Service (WMS)

Kiểu MIME

Nội dung tài liệu

application/vnd.ogc.wms_xml

WMS Capabilities XML

application/vnd.ogc.gml

Geography Markup Language XML


application/vnd.ogc.se_xml

Service Exception XML

application/vnd.ogc.se_inimage

Hình với các thơng điệp biệt lệ

application/vnd.ogc.se_blank

Hình trắng do biệt lệ xảy ra

Bảng 2.2.Danh sách các kiểu MIME

2.2.5.4. EXCEPTIONS
Tham số EXCEPTIONS chỉ ra định dạng để thông báo lỗi.
2.2.5.5. Hệ quy chiếu không gian (Spatial Reference System (SRS))
SRS là một tham số text dùng để chỉ hệ trục tọa độ nằm ngang. Nó bao gồm một
tiền tố namespace, một dấu hai chấm “:”, và một con số. Có hai loại namespace:
EPSG và AUTO.
Một dịch vụ có thể khơng hỗ trợ hết tất cả các SRS. Server sẽ quảng cáo các
SRS mà nó hỗ trợ trong tài liệu Capabilities XML và chấp nhận đáp ứng tất cả các
request yêu cầu các SRS mà nó hỗ trợ. Nếu như request có một SRS khơng được
cung cấp bởi server thì server sẽ gửi đi một biệt lệ dịch vụ (với mã “InvalidSRS”).
Ngược lại, một client cũng không cần hỗ trợ hết tất cả các SRS. Nếu client và
dịch vụ không cùng đưa ra được một SRS chung (cùng hỗ trợ) thì hoặc là client
ngừng liên lạc với dịch vụ đó, hoặc là tìm một nhà cung cấp dịch vụ trung gian có
khả năng chuyển đổi hệ trục tọa độ, hoặc là dùng phương pháp khác.
2.2.5.5.1. Không gian tên EPSG

Không gian tên EPSG được dựa trên các bảng dữ liệu của Nhóm Khảo sát Dầu
hỏa Châu Âu (European Petroleum Survey Group). Nó định nghĩa những con số đặc
trưng cho các phép chiếu, hệ trục tọa độ chuẩn, đơn vị đo, kinh tuyến gốc,...

10


Chương 2. Web Map Service (WMS)

Ví dụ, khi tham số SRS chỉ ra Hệ qui chiếu Tọa độ Địa lý (Geographic
Coordinate Reference System) thì sẽ là “EPSG:4326”.
2.2.5.5.2. Khơng gian tên AUTO
Không gian tên AUTO được dùng cho các phép chiếu tự động, đó là tập các
phép chiếu với tâm chiếu tùy ý. Một request chứa tham số SRS chỉ ra một phép
chiếu tự động sẽ bao gồm tiền tố không gian tên AUTO, một con số định danh cho
không gian tên AUTO, một con số định danh cho không gian tên EPSG mà chỉ ra
đơn vị cho hình chữ nhật bao trong SRS này, và giá trị của kinh độ và vĩ độ trung
tâm.
Nó có dạng:
AUTO:auto_proj_id,epsg_units_id,lon0,lat0

Ví dụ: một dịch vụ hỗ trợ phép chiếu trực giao tự động (Auto Orthographic
projection) sẽ thêm vào element "<SRS>AUTO:42003</SRS>" trong tài liệu
Capabilities XML của nó.
2.2.5.5.3. SRS khơng xác định
Server cũng có thể đưa ra thông tin địa lý mà hệ quy chiếu không gian của nó
khơng được xác định một cách chính xác. Chẳng hạn như tập hợp các bản đồ lịch sử
vẽ bằng tay được số hóa có thể biểu diễn một vùng trên trái đất nhưng không theo
một hệ tọa độ hiện đại nào. Trong trường hợp này, giá trị “NONE” (viết hoa) sẽ
được dùng khi muốn chỉ ra SRS của tập hợp các bản đồ này.

2.2.5.6. Hình chữ nhật bao
Hình chữ nhật bao là một tập bốn con số nguyên được phân cách bởi dấu phẩy
“,”. Nó biểu diễn các giá trị minX, minY, maxX, maxY theo đơn vị của SRS trong
request. Trong đó, X biểu diễn cho các trục kinh tuyến, Y biểu diễn cho các trục vĩ
tuyến. Mối quan hệ giữa hình chữ nhật bao và ma trận các điểm ảnh được biểu diễn
trong hình dưới đây: hình chữ nhật bao sẽ bao chung quanh các điểm ảnh của ảnh
chứ khơng đi qua tâm của các điểm ảnh ngịai rìa. Trong ngữ cảnh này, mỗi một
điểm ảnh đều có diện tích.

11


Chương 2. Web Map Service (WMS)

Hình 2.1.Hình chữ nhật bao

Một hình chữ nhật bao khơng thể có diện tích bằng 0.
Nếu một request đưa ra một hình chữ nhật bao khơng hợp lệ (ví dụ minX ≥
maxX hay minY ≥ maxY) thì server sẽ đưa ra một biệt lệ.
Nếu một request đưa ra một hình chữ nhật bao khơng hề giao nhau với hình chữ
nhật bao được đưa ra trong tài liệu Capabilities XML cho đối tượng thông tin địa lý
được yêu cầu, thì server sẽ trả về giá trị rỗng (ví dụ: một bản đồ trắng, ...) cho
element này. Bất kỳ element nào nằm một phần hoặc toàn bộ trong hình chữ nhật
bao sẽ được trả về với định dạng tương ứng.
2.2.5.7. Chiều thời gian
Một vài thông tin địa lý có thể có giá trị trong nhiều thời điểm khác nhau, ví dụ
như bản đồ thời tiết theo giờ. Dịch vụ cần phải thơng báo các giờ có thể trong tài
liệu Capabilities XML , và một vài operation cần có thêm tham số để u cầu lấy
thơng tin về thời gian. Tùy theo ngữ cảnh, giá trị thời gian có thể là một giá trị đơn,
danh sách các giá trị, khoảng thời gian,…


12


Chương 2. Web Map Service (WMS)

2.2.5.8. Chiều cao
Một vài thông tin địa lý có thể có giá trị trong nhiều độ cao khác nhau, ví dụ như
bản đồ mật độ tầng ozone tại các độ cao khác nhau trong khí quyển. Dịch vụ cần
phải thơng báo các độ cao có thể trong tài liệu Capabilities XML , và một vài
operation cần có thêm tham số để u cầu lấy thơng tin về độ cao. Một giá trị độ
cao đơn là một số nguyên hoặc số thực mà đơn vị của nó được đưa ra trong dữ liệu
của EPSG. Tùy theo ngữ cảnh, giá trị độ cao có thể là một giá trị đơn, danh sách các
giá trị, khoảng cách,…
2.2.5.9. Các chiều khác
Một vài thơng tin địa lý có thể có thêm nhiều chiều khác, chẳng hạn như ảnh vệ
tinh ở các dải bước sóng khác nhau. Các chiều khác ngồi bốn chiều không gian
được xem như là các “chiều mẫu”. Dịch vụ cần phải thơng báo các chiều mẫu có thể
trong tài liệu Capabilities XML , và một vài operation cần có thêm cơ chế để thêm
các tham số chiều mẫu. Mỗi một chiều mẫu có mơt tên và một hoặc nhiều giá trị
hợp lệ.
2.2.6. Kết quả dịch vụ
Giá trị trả về của môt request hợp lệ sẽ tương ứng với kiểu được yêu cầu trong
tham số FORMAT. Trong môi trường HTTP, header kiểu nội dung của response sẽ
chính xác là kiểu MIME được đưa ra trong request.
2.2.7. Biệt lệ dịch vụ
Khi nhận được một request không hợp lệ, dịch vụ sẽ đưa ra một biệt lệ dịch vụ.
Biệt lệ này sẽ giải thích cho ứng dụng client hoặc người sử dụng biết lý do tại sao
request không hợp lệ.


13


Chương 2. Web Map Service (WMS)

2.3. Các operation của Web Map Service
2.3.1. GetCapabilities
2.3.1.1. Chức năng
Lấy dữ liệu ở tầng dịch vụ, đó là những mơ tả cho máy và cả con người về nội
dung thông tin của WMS và các tham số request chấp nhận được. Response của một
GetCapabilities request là thông tin chung về bản thân dịch vụ và thơng tin riêng
biệt của các bản đồ có thể u cầu.
2.3.1.2. GetCapabilities request
Khi tạo ra loại request này, cần phải chỉ ra rằng client đang có nhu cầu tìm kiếm
thơng tin về WMS. Do đó, tham số SERVICE trong câu request có giá trị là
“WMS”.

Tham số request

Bắt buộc/
Tùy chọn

Mơ tả

VERSION = version

Tùy chọn

Phiên bản yêu cầu


SERVICE = WMS

Bắt buộc

Loại dịch vụ

REQUEST = GetCapabilities

Bắt buộc

Tên request

UPDATESEQUENCE = string

Tùy chọn

Dãy số/chuỗi đề điều khiển cache

Bảng 2.3.Các tham số trong GetCapabilities request URL

2.3.1.2.1. VERSION
Tham số VERSION là một tham số tùy chọn, được sử dụng trong quá trình thỏa
thuận phiên bản.
2.3.1.2.2. SERVICE
Tham số SERVICE là một tham số bắt buộc, dùng để chỉ kiểu dịch vụ nào cần
được thực thi. Khi gọi thực thi GetCapabilities trên một WMS, giá trị của tham số
này phải là “WMS”.

14



×