CHƯƠNG 2. TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU
2.3 Tổng quan về WebGIS
2.3.2 Một số chuẩn trao đổi dữ liệu địa lý theo chuẩn OGC
2.2.2.3 Giới thiệu một số chuẩn trao đổi dữ liệu
a. Web Map Server (WMS):
Đây là một trong những đặc tả cơ bản quan trọng do OGC đưa ra, trong đó web server trở thành Web Map Server có server cung cấp dịch vụ chia sẻ dữ liệu.
Các hoạt động mà Client có thể thực hiện thông qua dịch vụ này gồm: trả về mô tả các bản đồ, trả về bản đồ, trả về các thông tin truy vấn trên bản đồ [10].
Chuẩn này không áp dụng cho việc nhận dữ liệu thô - dữ liệu chưa xử lý dạng thuộc tính hay không gian. Web Map Server có khả năng tạo ra và hiển thị bản đồ từ nhiều nguồn dữ liệu khác nhau. Các bản đồ được tạo ra dưới các định dạng ảnh như JPEG (Joint Photographics Expert Group), PNG (Portal Network
Graphic), GIF (Graphic Interchange Format) hoặc định dạng các thành phần
vector như SVG (Scalable Vector Graphic), webCGM (web Computer Graphic
Metafile)…
WMS cung cấp ba giao tác cơ bản thực hiện các dịch vụ nói trên:
GetCapabilites, GetMap và GetFeatureInfo (trong đó 2 giao tác đầu tiên bắt buộc phải có).
1) GetCapabilites: yêu cầu WMS server trả về danh sách các giao tác và
các dịch vụ được cung cấp bởi máy chủ[10]. Một câu lệnh GetCapabilities điển hình sẽ có dạng như sau:
http://www.example.com/wms?
service=wms&
version=1.1.1&
request=GetCapabilities Trong câu lệnh trên có ba tham số được truyền đến máy chủ WMS, service=wms, version=1.1.1 và request=GetCapabilities. Yêu cầu tối thiểu trong câu lệnh WFS cũng cần có ba tham số service, version và request như thế.
Geoserver không thắt chặt các yêu cầu đó nhưng đây là các tham số bắt buộc, vì thế chúng luôn được đưa vào. Từ khóa service chỉ ra dịch vụ nào đang được gọi, từ khóa version đề cập đến phiên bản WMS được yêu cầu, từ khóa request là nơi chỉ định thực hiện giao tác GetCapabilities. Tài liệu Capabilities được trả về dưới dạng XML bao gồm ba thành phần chính:
+ Service: chứa các thông tin header cơ bản như tên, mô tả dịch vụ, thông tin liên hệ tới cơ quan quản lý WMS server trong cặp thẻ <service>
</service>.
+ Request: mô tả các giao tác mà WMS server chấp nhận, các tham số và định dạng đầu ra cho mỗi giao tác trong cặp thẻ <request> </request>
+ Layer: chứa danh sách các lớp bản đồ và lưới chiếu hiện có trên server trong cặp thẻ <layer> </layer>.
2) GetMap: cho phép Client chỉ thị một loạt các server tạo ra các lớp bản
đồ với hệ quy chiếu, kích thước, tỷ lệ và hình học (dưới dạng pixel). Client có thể chồng lớp các bản đồ theo một trình tự mong muốn[10].
Get Map Request:
Câu lệnh Get Map yêu cầu bản đồ có dạng như sau:
http://localhost/geoserver/demo/wms?service=WMS&version=1.1.0&reques t=GetMap&layers=demo:mybinh&styles=polygon&bbox=574103.75,1148014.2 5,575813.8125,1149467.5&width=512&height=435&srs=EPSG:3405&format=
application/openlayers Trong đó bao gồm:
- Tiền tố URL: http://localhost/geoserver/demo/wms.
- Tiền tố và các tham số cách nhau bởi dấu ?, các tham số cách nhau bởi dấu &.
- Các tham số dùng để gọi bản đồ:
+ service=WMS: xác định dịch vụ (WMS, WFS…) được gọi.
+ version=1.1.0: phiên bản của dịch vụ được gọi.
+ request=getMap: chỉ định thực thực hiện giao tác GetMap.
+ layers=demo:mybinh: chỉ ra các lớp bản đồ nào được yêu cầu.
+ styles=polygon: chỉ ra kiểu thể hiện dùng cho lớp bản đồ, nếu tham số này không có giá trị thì giá trị mặc định được đưa vào.
+ bbox=574103.75,1148014.25,575813.8125,1149467.5: phạm vi bao
quanh tối thiểu của khu vực hiển thị bản đồ.
+ width=512, height=435: kích thước khung bản đồ.
+ srs=EPSG:3405: xác định hệ thống tham khảo tọa độ không gian dùng
cho lớp bản đồ.
+ format=application/openlayers: xác định định dạng bản đồ được trả về client.
Get Map Response:
- Kết quả trả về là một bản đồ đáp ứng các tham số trên (hình 2.7).
3) GetFeatureInfo: trả về thông tin liên quan đến một đối tượng được hiển
thị trên bản đồ tại vị trí (x,y). Phương thức này cho phép Client có thể truy vấn
thông tin về một đối tượng [10].
GetFeatureInfo Request:
Câu lệnh GetFeatureInfo thường có dạng như sau:
http://localhost/geoserver/demo/wms?service=WMS&version=1.1.0&request
=GetFeatureInfo&layers=demo:mybinh&styles=style_for_price&bbox=574103 .75,1148014.25,575813.8125,1149467.5&width=512&height=435&srs=EPSG:3 405&format=application/openlayers&X=200&Y=230&query_layers=demo:my
binh
Về mặt cấu trúc, câu lệnh này cũng giống như câu lệnh Get Map request nhưng có thêm ba tham số bắt buột nữa là tọa độ của đối tượng ảnh trên bản đồ
(X,Y) và lớp bản đồ sẽ lấy thông tin chỉ định qua tham số query_layers.
GetFeatureInfo Response:
Giá trị X, Y được lấy từ tọa độ click chuột trên màn hình client. Kết quả trả
về là thông tin thuộc tính của đối tượng (nếu có) dưới định dạng text/html có nội dung như sau:
Hình 2.7 Kết quả trả về khi thực hiện giao tác GetMap
Thông qua WMS, người sử dụng có thể dùng các Web Browser chuẩn để gửi
thông điệp yêu cầu đến WMS Server và kết quả trả về hiển thị trên client. Không giống như WFS (Web Feature Service) cho phép chọn lựa đối tượng cụ thể để trả về dưới dạng GML mà không quan tâm đến cách thức trình bày dữ liệu như thế nào, WMS cho phép người sử dụng hiển thị dữ liệu theo ý muốn và tạo ra các bản đồ. Một đặc tả hỗ trợ cho WMS tạo ra bản đồ theo ý muốn là SLD (Styled Layer Description). SLD mô tả các đối tượng dưới dạng các ký hiệu mà màu sắc.
b. Styled Layer Descriptor (SLD):
SLD là một dạng mã hóa của đặc tả WMS có thể mở rộng để cho phép ký hiệu hóa dữ liệu theo yêu cầu người sử dụng. Đặc tả này hướng đến việc đáp ứng các yêu cầu của khách hàng sử dụng dữ liệu không gian (con người hoặc máy) để có thể điều khiển việc tạo ra bản đồ trực quan từ những dữ liệu đang sử dụng.
Đặc tả OpenGIS Web Map Server (WMS) hỗ trợ khả năng cung cấp thông tin
nào đó dựa vào những lựa chọn cụ thể về ký hiệu, màu sắc cơ bản đối với một tập dữ liệu sẵn có. Tuy nhiên trong khi WMS hiện tại có thể cung cấp cho người sử dụng các lựa chọn, thì người sử dụng chỉ biết tên của ký hiệu chứ không biết hình ảnh trực quan bản đồ được tạo ra như thế nào. Một vấn đề quan trọng hơn nữa là người sử dụng không có cách nào định nghĩa những luật để tạo ra hình ảnh bản đồ theo cách riêng của mình. Điều đó có nghĩa cần cung cấp một ngôn ngữ mô tả ký hiệu để người sử dụng (client) có khả năng tự định nghĩa hình thức trình bày các đối tượng địa lý theo quan điểm riêng của mình. Ngôn ngữ đó chính là Styled Layer Descriptor (SLD). SLD dùng để định nghĩa hình dáng, màu sắc đầu ra (dữ liệu) của các WFS (Web Feature Server), WMS và Web Coverage. Trong rất nhiều trường hợp, các clients cần một vài thông tin về dữ liệu đang có sẵn tại các máy chủ từ xa trước khi đưa ra những yêu cầu thích hợp.
Có hai cách cơ bản để định dạng cho dữ liệu. Đơn giản nhất là tạo màu cho tất cả các đối tượng theo cùng một cách. Ví dụ: tất cả sông suối một nét (line) và hai nét (polygon) đều được tô màu theo cùng một cách, người sử dụng gửi lệnh
cho server tô màu bên trong tất cả các polygon (sông hai nét) màu xanh dương nhạt, còn đường viền sông suối một nét màu xanh dương đậm. Kiểu tạo hình này không cần biết các thuộc tính (no-graphic data) của dữ liệu phía dưới. Những yêu cầu tạo hình cho một lớp dữ liệu được định nghĩa trong phần tử FeatureTypeStyle của tài liệu đặc tả SLD.
Ví dụ:
Dạng yêu cầu phức tạp hơn là tạo hình cho các dữ liệu phía dưới một vài thuộc tính. Ví dụ : đối với dữ liệu thửa đất, khi sử dụng thuộc tính giá đất, chia thành nhiều nhóm giá, có sự thay đổi giá từ nhóm thấp nhất đến nhóm giá cao nhất theo màu sắc...
…