tài liệu 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ụ
Trang 1LỜ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, nuôi 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 quý 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
Trang 2LỜ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ó hoà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
Trang 3Chươ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
Trang 4MỤ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
Trang 5Chươ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
Trang 63.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 toá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 toá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 toá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
Trang 74.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 toá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
Trang 86.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
Trang 9DANH 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
Trang 10DANH 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
Trang 11MỘ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
Trang 12lý
Đ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 toà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 yê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 toàn cầu hoá
Yê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 quá 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
Trang 13Chươ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 toá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
Trang 14Chươ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 toá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) Ngoà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
Trang 15Chươ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ý đó
Trang 16Chương 2 Web Map Service (WMS)
Chương 2 Web Map Service (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ể yê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
Trang 17Chươ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ố nguyên 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)
Trang 18Chươ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 quá 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
? 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
Trang 19Chươ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
Trang 20Chương 2 Web Map Service (WMS)
2.2.5 Các tham số thông dụng trong câu request
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
Trang 21Chương 2 Web Map Service (WMS)
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,
Trang 22Chươ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.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
Trang 23Chươ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ố để yê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,…
Trang 24Chươ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ố để yê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 ngoà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ệ
Trang 25Chươ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ể yêu cầu
VERSION = version Tùy chọn Phiên bản yêu cầu
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
Trang 26Chương 2 Web Map Service (WMS)
có bản đồ mới được thêm vào dịch vụ) Client có thể thêm tham số này vào trong request GetCapabilities của nó Server sẽ trả về một response dựa trên mối quan hệ giữa giá trị UpdateSequence tương ứng trong câu request của client và thông tin trong metadaa của server, mối quan hệ này được biểu diễn thông qua bảng sau:
Giá trị
UpdateSequence trong
request của client
Giá trị UpdateSequence trong thông tin metadata
của server
Response của server
Trang 27Chương 2 Web Map Service (WMS)
2.3.1.3 GetCapabilities response
Mục “Các element cơ sở “ đã chỉ ra các quy tắc chung cho response của GetCapabilities Cấu trúc tài liệu XML của response sẽ tuân theo chuẩn được đưa ra trong tài liệu DTD DTD này đặc tả các nội dung bắt buộc và tùy chọn của response
và định dạng của các nội dung ấy
2.3.1.3.1 Name và Title
Có nhiều element mà định dạng của nó bao gồm một cặp <Name> và <Title> Trong đó, Name có ý nghĩa trong giao tiếp giữa máy với máy, còn Title có ý nghĩa cho người sử dụng Ví dụ , một dataset có thể có Title như sau “Nhiệt độ khí quyển cực đại” và được yêu cầu với Name là “ATMAX”
2.3.1.3.2 Thông tin metadata của dịch vụ
Phần đầu của tài liệu Capabilities XML là element <Service> cung cấp thông tin metadata chung của dịch vụ Nó bao gồm trong đó các element khác như Name, Title, OnlineResourceURL, Abstract, KeywordList, ContactInformation, Fees và Access Constraints Ý nghĩa của các element này như sau
Element Name của dịch vụ là “OGC:WMS”
Element Title của dịch vụ là tùy thuộc vào nhà cung cấp, nó là một mô tả ngắn gọn về dịch vụ
Element Abstract cho phép mô tả thêm thông tin về các đối tượng có trong dịch
vụ
Element OnlineResourceURL dùng để chỉ ra website của nhà cung cấp dịch vụ
Có các element OnlineResourceURL khác nhau cho tiền tố URL với mỗi operation
hỗ trợ
Element KeywordList là danh sách các từ hỗ trợ cho việc phân loại tìm kiếm Element ContactInformation nên được thêm vào để cho biết thêm thông tin liên lạc cần thiết
Trang 28Chương 2 Web Map Service (WMS)
Giá trị “none” (viết thường) được dùng để chỉ ra rằng không có phí hay ràng buộc truy cập đối với dịch vụ này Nó được viết như sau: <Fees>none</Fees>,
Do không có quy định nào nên hiện tại, việc đặt tên lớp, tên kiểu, tiêu đề và từ khóa là túy ý
2.3.1.3.4 Các property của layer
Element <Layer> bao gồm các element con trong đó nhằm cung cấp thông tin metadata về lớp này Giá trị của một số element sẽ được kế thừa lại theo quy tắc được định nghĩa ở mục 3.1.3.7 Dưới đây là ý nghĩa của các element này
Trang 29Chương 2 Web Map Service (WMS)
request GetMap với đối số LAYERS có giá trị là giá trị của element <Name> này Client sẽ không thể gửi request đến lớp chỉ có Title mà không có Name
Server sẽ gửi một biệt lệ có mã là “LayerNotDefined” nếu client gửi request đến một lớp không hợp lệ
Khi gửi request đến một lớp cha thông qua element <Name> của nó thì tất cả các lớp con sẽ cùng được truy xuất Ví dụ khi gửi request đến lớp cha là lớp
“Đường” thì các lớp con là lớp “Đường Phố” và “Đường Quốc Lộ” cũng cho phép gửi request đến từng lớp con hoặc gửi đến cả hai cùng lúc
Thành phần <Name> không được kế thừa lại bởi các lớp con
2.3.1.3.4.3 Abstract và KeywordList
Tuy <Abstract> và <KeywordList> là hai element tùy chọn nhưng khuyến cáo là nên dùng Abstract cho mô tả chi tiết về lớp bản đồ Còn KeywordList có từ 0 đến nhiều từ khóa nhằm hỗ trợ cho việc phân loại tìm kiếm Hai element Abstract và KeywordList không được kế thừa lại bởi các lớp con
2.3.1.3.4.4 Style
Có thể không có hoặc có nhiều kiểu được mô tả cho một hoặc tập các lớp bằng cách dùng các element <Style> Mỗi một element <Style> chứa trong đó một cặp element <Name> và <Title> Giá trị Name được sẽ được sử dụng khi client gửi request GetMap, nó nằm trong tham số STYLES Title là một chuỗi có ý nghĩa cho người sử dụng Nếu lớp hoặc tập lớp đó chỉ có một kiểu thì kiểu này được xem là kiểu mặc định và không cần được đặc tả tại server
Element <Style> có thể chứa trong đó thêm nhiều element khác như là
<Abstract> dùng để mô tả chi tiết về kiểu, trong khi <LegendURL> cho biết vị trí của ảnh ghi chú của bản đồ tương ứng với kiểu này Element <Format> trong
<LegendURL> cho biết kiểu MIME của ảnh đó và các thuộc tính chiều rộng, chiều cao của ảnh theo đơn vị pixel
Trang 30Chương 2 Web Map Service (WMS)
Các <Style> được kế thừa lại bởi các lớp con Lớp con không được định nghĩa lại kiểu mà nó kế thừa từ lớp cha, song nó có thể định nghĩa một kiểu mới với một tên mới mà không có trong lớp cha
2.3.1.3.4.5 SRS
Mỗi một lớp có thể được dùng trong một hoặc nhiều hệ quy chiếu không gian Mỗi một lớp có ít nhất một element <SRS> được định nghĩa mới hoặc kế thừa lại từ lớp cha Lớp gốc sẽ chứa tất cả các element <SRS> có thể được dùng trong các lớp con Sử dụng một element với nội dung trống <SRS></SRS> nếu như không có SRS nào cả
Khi một lớp có nhiều element <SRS> thì có hai cách để biểu diễn danh sách các giá trị SRS, cách đầu tiên được dùng trong phiên bản 1.1.1 , cách thứ hai tuy không còn được sử dụng song các dịch vụ vẫn hiểu được do tính tương thích lùi
1)Danh sách các giá trị SRS được đặt trong các element <SRS> liên tiếp nhau,
và mỗi element <SRS> chỉ có một giá trị Ví dụ: <SRS>EPSG:1234</SRS>
hệ tọa độ địa lý EPSG:4326
LatLonBoundingBox được hộ trợ bất chấp Map Server hỗ trợ SRS nào đi chăng nữa, tuy nhiên nó chỉ có giá chị xấp sỉ nếu như EPSG:4326 không được hỗ trợ Mục đích của nó nhằm giúp cho việc tìm kiếm thông tin địa lý được thực hiện một cách
dễ dàng mà không cần các bộ máy tìm kiếm phải chuyển hệ tọa độ
Element LatLonBoundingBox và element BoundingBox (được định nghĩa ở mục sau) có một mối quan hệ với tham số BBOX trong câu request GetMap Thông tin metadata về BoundinhBox trong tài liệu Capabilities XML đặc tả hình chữ nhật
Trang 31Chương 2 Web Map Service (WMS)
bao xung quanh lớp bản đồ Còn tham số BBOX lại đặc tả hình chữ nhật sẽ vẽ trên bản đồ Hình chữ nhật BBOX có thể giao, chứa hoặc chứa trong hình chữ nhật BoundingBox
2.3.1.3.4.7 BoundingBox
Một lớp có thể không có hoặc có nhiều element <BoundingBox> được định nghĩa mới hoặc kế thừa từ lớp cha Mỗi một BoundingBox định nghĩa một hình chữ nhật bao xung quanh dữ liệu bản đồ trong một hệ quy chiếu không gian nhất định,
trong đó thuộc tính SRS sẽ chỉ ra hệ quy chiếu không gian nào được áp dụng Nếu
diện tích của vùng dữ liệu bản đồ có hình dạng bất thường thì BoundingBox sẽ chỉ
ra hình chữ nhật bao có diện tích nhỏ nhất Các thuộc tính minx, miny, maxx, maxy
chỉ ra tọa độ của các cạnh của hình chữ nhật bao trong hệ quy chiếu Các thuộc tính
tùy chọn resx, resy chỉ ra độ độ phân giải không gian của dữ liệu với đơn vị của hệ
quy chiếu trên
Như vậy, <LatLonBoundingBox> là một Bounding Box đặc biệt với thuộc tính
SRS=”EPSG:4326”, tuy nhiên LatLonBoundingBox không có thuộc tính resx, resy
Khi đó, nếu có thêm BoundingBox cho EPSG:4326 thì nó nhằm mục đích cung cấp thêm thông tin về độ phân giải
Mỗi một lớp có thể có nhiều element <BoundingBox> song mỗi element này chỉ cho một SRS riêng biệt mà thôi Một lớp sẽ kế thừa tất cả các giá trị BoundingBox được định nghĩa ở lớp cha Song, giá trị BoundingBox này sẽ được thay thế nếu lớp con định nghĩa lại một BoundingBox mới trên cùng một SRS của BoundingBox định nghĩa ở lớp cha Khi lớp con định nghĩa một BoundingBox cho một SRS mới chưa được định nghĩa ở lớp cha thì BoundingBox này sẽ được thêm vào danh sách các BoundingBox ở lớp con Một lớp không được định nghĩa nhiều hơn một BoundingBox cho cùng một SRS
Trong một lớp, với cùng một SRS, ta không thể định nghĩa các hình chữ nhật bao rời nhau Ví dụ, giả sử như có một dataset mô tả hai vùng diện tích cách xa nhau, khi đó, server không thể tách ra thành hai hình chữ nhật bao để diễn tả hai
Trang 32Chương 2 Web Map Service (WMS)
trường hợp này, server sẽ định nghĩa một hình chữ nhật bao duy nhất bao trùm lên
cả hai vùng diện tích này, hoặc là định nghĩa hai hình chữ nhật bao trên hai lớp bản
đồ khác nhau (có tên lớp và giá trị BoundingBox khác nhau)
Nếu server có khả năng chuyển đổi dữ liệu trên các SRS khác nhau thì nó sẽ không chọn giải pháp cung cấp các BoundingBox riêng biệt cho từng SRS được hỗ trợ trên mỗi lớp Server sẽ chỉ cung cấp thông tin BoundingBox cho ít nhất một SRS cơ bản của mỗi lớp mà thôi
Dimension được kế thừa lại ở các lớp con Nó có thể định nghĩa thêm nhiều
<Dimension> mới song không được định nghĩa lại <Dimension> kế thừa từ lớp cha Extent được kế thừa lại ở các lớp con Khi lớp con định nghĩa một <Extent> với
thuộc tính Name có cùng giá trị vói thuộc tính Name của <Extent> mà nó kế thừa
lại từ lớp cha, thì giá trị mới sẽ được thay thế cho giá trị cũ
Trang 33Chương 2 Web Map Service (WMS)
element tùy chọn khác như: <OnlineResource> cho biết URL của nhà cung cấp dịch
vụ, <Title> cho biết tên của nhà cung cấp dịch vụ, chuỗi này chỉ có ý nghĩa với người dùng, <LogoURL> cho biết URL của ảnh logo Element <Format> trong
element <LogoURL> cho biết kiểu MIME của ảnh logo, thuộc tính width và heigth
cho biết kích thước của ảnh tính theo đơn vị pixel
Attribute có thể được kế thừa ở các lớp con Bất cứ định nghĩa lại nào ở lớp con
sẽ thay thế giá trị cũ được kế thừa
2.3.1.3.4.12 Identifier và AuthorityURL
Một Map Server có thể không có hoặc có nhiều element <Identifier> để liệt kê các số định danh hoặc các nhãn trong element <AuthorityURL> Thuộc tính
authority trong element <Identifier> tương ứng với giá trị của thuộc tính name trong
element <AuthorityURL> Trong <AuthorityURL> có element <OnlineResource> chỉ ra URL của tài liệu định nghĩa ý nghĩa của các giá trị Identifier
2.3.1.3.4.13 FeatureListURL
Một Map Server có thể dùng element <FeatureListURL> để chỉ ra danh sách các feature được biểu diễn trong lớp FeatureListURL không được kế thừa lại ở các lớp con
Trang 34Chương 2 Web Map Service (WMS)
2.3.1.3.4.14 DataURL
Một Map Server có thể dùng element <DataURL> để chỉ ra URL nhằm cung cấp thêm thông tin về dữ liệu biểu diễn trong lớp DataURL không được kế thừa lại
ở các lớp con
2.3.1.3.5 Các attribute của layer
Một <Layer> có thể không có hoặc có nhiều attribute như: queryable, cascaded, opaque, noSubsets, fixedWidth, fixedHeight Tất cả các attribute này là tùy chọn và mặc định đều có giá trị là 0 Mỗi attribute này có thể được kế thừa hoặc định nghĩa lại ở các lớp con Bảng sau mô tả ý nghĩa của các attribute này
queryable 0, 1 0: không truy vấn được
opaque 0, 1 0: dữ liệu bản đồ biểu diễn các feature dạng vector
mà không có miền tô
1: dữ liệu bản đồ là các miền tô đặc
noSubsets 0, 1 0: WMS có thể vẽ tập con nằm trong bounding box
1: WMS chỉ có thể vẽ toàn bộ bounding box fixedWidth 0, nguyên
dương
0: WMS có thể chỉnh lại chiều rộng bản đồ n: bản đồ được cố định chiều rộng và WMS không
Trang 35Chương 2 Web Map Service (WMS)
2.3.1.3.5.1 Lớp có thể truy vấn
Lớp được gọi là có thể truy vấn nếu như server hỗ trợ operation GetFeatureInfo trên lớp này Một server có thể hỗ trợ GetFeatureInfo trên một vài lớp của nó chứ không hỗ trợ tất cả Server sẽ gửi ra biệt lệ có mã là “LayerNotQueryable” nếu như operation GetFeatureInfo được yêu cầu trên lớp không truy vấn được
Nếu attribute tùy chọn opaqued của một lớp không có hoặc có giá trị “0” thì các
bản đồ từ lớp này sẽ không có dữ liệu bề mặt, client sẽ hiển thị nó trong suốt Chỉ hiển thị các feature dạng vector như điểm, đường, đa giác (tuy nhiên nếu hiển thị các feature này liên tục nhau thì xem như nó có miền tô) Nếu có giá trị là “1”, thì
lớp này sẽ biểu diễn cả các bề mặt Attribute opaqued thường được đặt cho lớp ở
đáy ngăn xếp các lớp khi hiển thị bản đồ Attribute này chỉ mô tả nội dung dữ liệu của lớp chứ không mô tả định dạng của ảnh bản đồ
2.3.1.3.5.4 Lớp có tập con và lớp có thể chỉnh kích thước
Nếu thông tin metadata của lớp có thêm ba attribute tùy chọn là noSubset, fixedWidth, fixedHeight (tức là giá trị của các attribute này là “1”) thì Map Server này ít chức năng hơn một WMS thông thường do nó không thể xuất ra một ảnh của tập con của dữ liệu địa lý gốc hoặc nó chỉ phục vụ các bản đồ có kích thước cố định
và không thể chỉnh lại kích thước Ví dụ, một WMS chỉ hỗ trợ các ảnh số hóa từ bản đồ lịch sử, hoặc các hình ảnh chụp từ vệ tinh, chúng không thể lấy ra tập con hoặc chỉnh lại kích thước Tuy nhiên, vẫn thực thi được request GetMap với dữ liệu trả về là toàn bộ bản đồ với kích thước nguyên thủy
Trang 36Chương 2 Web Map Service (WMS)
Khi attribute noSubsets=1 thì server không thể cắt dữ liệu hoặc bản đồ thành
một vùng dữ liệu địa lý có diện tích nhỏ hơn hình chữ nhật bao
Khi có giá trị khác “0”, thì hai attribute fixedWidth và fixedHeight chỉ ra rằng
server không thể chỉnh lại kích thước bản đồ
2.3.1.3.6 Sự kế thừa các thuộc tính của lớp
Bảng sau đây cho biết cách mà các lớp con kế thừa các thuộc tính từ lớp cha như thế nào Có thuộc tính không được kế thừa, có thuộc tính được kế thừa, có thuộc tính được cài đặt lại
Trong bảng dưới đây, cột “Số lượng” cho biết số lượng element có thể xuất hiện
trong lớp Trong đó, “1” có nghĩa là chỉ xuất hiện duy nhất một lần trong mỗi lớp,
“0/1” có nghĩa là không xuất hiện hoặc xuất hiện một lần, “0+”có nghĩa là không xuất hiện hoặc xuất hiện nhiều lần, “1+” có nghĩa là xuất hiện ít nhất một lần
Cột “Kế thừa” cho biết element có được kế thừa ở lớp con hay không và được
kế thừa như thế nào Trong đó, “không” có nghĩa là không được kế thừa, “thêm” có nghĩa là được kế thừa và các lớp con có thể thêm nhiều element, “thay thế” có nghĩa
là được kế thừa và lớp con có thể định nghĩa lại element này
Trang 37Chương 2 Web Map Service (WMS)
Trang 38Chương 2 Web Map Service (WMS)
LAYERS=layer_list Bắt buộc Danh sách các lớp bản đồ
được phân cách bởi dấu phẩy.STYLES=style_list Bắt buộc Danh sách kiểu của mỗi lớp
trong request SRS=namespace:identifier Bắt buộc Hệ quy chiếu không gian BBOX=minx,miny,maxx,maxy Bắt buộc Góc dưới trái và trên phải của
hình chữ nhật bao theo đơn vị
của SRS
WIDTH=output_width Bắt buộc Chiều rộng của ảnh (pixel) HEIGHT=output_height Bắt buộc Chiều cao của ảnh (pixel) FORMAT=output_format Bắt buộc Định dạng trả về của bản đồ TRANSPARENT=TRUE|FALSE Tùy chọn Sự trong suốt của nền bản đồ
(default=FALSE)
(default=0xFFFFFF) EXCEPTIONS=exception_format Tùy chọn Định dạng của biệt lệ trả về
của WMS (default=SE_XML) TIME=time Tùy chọn Giá trị thời gian của lớp ELEVATION=elevation Tùy chọn Giá trị độ cao của lớp Các chiều mẫu khác Tùy chọn Giá trị của các chiều
Bảng 2.7.Các tham số trong GetMap request
Trang 39Chương 2 Web Map Service (WMS)
2.3.2.2.4 STYLES
Tham số bắt buộc STYLES liệt kê kiểu mà lớp đó sẽ vẽ Các giá trị của tham số STYLES được phân cách bởi dấu phẩy “,” Có quan hệ tương ứng một-một giữa một giá trị trong tham số LAYERS và một giá trị trong tham số STYLES Mỗi bản
đồ trong sanh sách các lớp của tham số LAYERS sẽ được vẽ theo kiểu tương ứng (cùng vị trí) của nó trong danh sách các kiểu của tham số STYLES Nói một cách khác, sẽ không có chuyện client yêu cầu vẽ một lớp theo kiểu của một lớp khác Server sẽ đưa ra biệt lệ có mã “StyleNotDefined” nếu một kiểu không hợp lệ được yêu cầu
Client có thể yêu cầu kiểu mặc định bằng cách để giá trị null (“STYLES=”) Nếu yêu cầu vẽ các lớp trong đó lớp thì được yêu cầu vẽ theo kiểu mặc định, lớp thì yêu cầu vẽ theo kiểu riêng thì tham số STYLES sẽ có giá trị null giữa hai dấu phẩy
“,” (“STYLES=style1,,style2,,”) Nếu tất cả các lớp đều được yêu cầu vẽ theo kiểu mặc định thì có tể sử dụng dạng “STYLES=” hoặc dạng “STYLES=,,,,,” đều hợp
lệ
Trang 40Chương 2 Web Map Service (WMS)
2.3.2.2.5 SRS
Tham số bắt buộc SRS chỉ ra hệ quy chiếu không gian áp dụng cho các giá trị của tham số BBOX SRS đã được trình bày chi tiết ở mục “Các element cơ sở” Giá trị của tham số SRS có thể là một trong các giá trị được định nghĩa ở element
<SRS> trong lớp được yêu cầu Cùng một SRS sẽ được áp dụng cho tất cả các lớp được yêu cầu trong GetMap
Nếu server có định nghĩa SRS=NONE cho môt lớp nào đó thì lớp này sẽ không
có một hệ quy chiếu không gian nên sẽ không được vẽ ra cùng với các lớp khác Client nên chỉ ra rằng SRS=NONE trong request của GetMap nếu không, server sẽ đưa ra biệt lệ dịch vụ
2.3.2.2.6 BBOX
Tham số bắt buộc BBOX cho phép client yêu cầu một hình chữ nhật bao Hình chữ nhật bao đã được trình bày chi tiết ở mục “Các element cơ sở” Giá trị của tham
số BBOX là request một dãy các số được phân cách bằng dấu phẩy “,” có dạng sau
“minx, miny, maxx, maxy”
Nếu server tuyên bố rằng có một lớp nào đó không thể lấy ra tập con, thì client nên chỉ ra giá trị của tham số BBOX trong request của GetMap đúng bằng giá trị của BoungdingBox trong tài liệu Capabilities XML, nếu không server sẽ đưa ra biệt
lệ
2.3.2.2.7 FORMAT
Tham số bắt buộc FORMAT chỉ ra định dạng cần trả về cho một operation Các giá trị định dạng hợp lệ cho một request GetMap của WMS được liệt kê trong element <Format> trong tài liệu Capabilities XML Toàn bộ chuỗi kiểu MIME trong element <Format> được dùng làm giá trị cho tham số FORMAT
Với mỗi WMS, nó sẽ hỗ trợ các định dạng “ảnh” hoặc các định dạng “thành phần đồ họa” Định dạng ảnh bao gồm các định dạng ảnh thông dụng như GIF (kiểu MIME là “image/gif”), PNG (kiểu MIME là “image/png”), JPEG (kiểu MIME là
“image/jpeg”) hầu hết đều có thể hiển thị trên trình duyệt web, tuy nhiên có một số