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
Trang 1Tiề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ị đó (“,,”)
Trang 22.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
Trang 3Kiể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,
Trang 4Ví 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
Trang 5Hì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 62.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 72.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
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/
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
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”
Trang 82.3.1.2.3 REQUEST
Tham số REQUEST là một tham số bắt buộc Để thực thi operation GetCapabilities, giá trị “GetCapabilities” sẽ được sử dụng
2.3.1.2.4 UPDATESEQUENCE
Tham số UPDATESEQUENCE là một tham số tùy chọn nhằm giữ tính ổn định của cache Giá trị của nó là một số nguyên, một timestamp có định dạng hoặc là một chuỗi Server có thể có giá trị UpdateSequence trong tài liệu Capabilities XML Giá trị này sẽ được tăng lên khi có theo đổi trong tài liệu Capabilities XML (ví dụ
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
mới nhất
mới nhất
code=CurrentUpdateSequence
mới nhất
code=InvalidUpdateSequence
Bảng 2.4.Mối quan hệ giữa giá trị UpdateSequence trong client và server
Trang 92.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 10Giá 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>,
<AccessConstraints>none</AccessConstraints>
2.3.1.3.3 Layer và Style
Phần quan trọng nhất trong tài liệu Capabilities XML là phần định nghĩa các lớp
và kiểu
Mỗi một bản đồ được đưa ra bởi một element <Layer> trong tài liệu Capabilities XML Một lớp cho có thể bao gồm trong đó nhiều lớp con, các lớp này có tính kế thừa Một số thuộc tính được định nghĩa ở lớp cha được kế thừa lại ở các lớp con của nó Các thuộc tính kế thừa này có thể được định nghĩa lại hoặc không được định nghĩa lại ở lớp con Một Map Server có ít nhất một element <Layer> cho mỗi lớp bản đồ mà nó hỗ trợ
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
2.3.1.3.4.1 Title
Element <Title> là bắt buộc đối với mọi lớp, nó là chuỗi có ý nghĩa cho người dùng và để hiển thị trong thực đơn Title không được kế thừa lại bởi các lớp con
2.3.1.3.4.2 Name
Khi và chỉ khi một lớp có element <Name> thì lớp đó mới có thể được yêu cầu bằng cách sử dụng giá trị tên này trong tham số LAYERS của request GetMap Nếu một lớp có Title nhưng không có Name, thì lớp này chỉ có ý nghĩa phân mục cho các lớp con của nó Một Map Server có thông báo trong đặc tả của nó một lớp có element <Name> thì nó sẽ đồng ý trả về một bản đồ tương ứng khi client gửi một
Trang 11request 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