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

Một phần của 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 103 - 107)

Để thực hiện GetCapabilities request ta chủ yếu sử dụng 3 lớp quan trọng trong

CarbonTools, chúng đều nằm trong Package CarbonTools.Core.OGCCapabilities:

SourceOGCCapabilites, DataOGCCapabilities và HandlerOGCCapabilities.

5.2.1.1.Lớp SourceOGCCapabilities

Lớp này chứa các thông tin cần thiết cho việc thực hiện request như: địa chỉ của server để gởi request lên, version của WFS hay WMS mà server cung cấp….

SourceOGCCapabilities gồm các thuộc tính chính như sau:

STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa

1 Address System.Uri Chứa địa chỉ của server nơi mà

request được gởi đến 2 ServiceType CarbonTools.Core.Ba

se.OGCServiceTypes

Xác định loại service cần lấy thông tin là WFS hay WMS Có 2 giá trị là: CarbonTools.Core.Base.OGCS erviceTypes.WFS: Cho biết loại service cần lấy là WFS. CarbonTools.Core.Base.OGCS erviceTypes.WMS: Cho biết loại service cần lấy là WMS.

3 Version string Cho biết phiên bản của WFS

hay WMS muốn lấy từ server

4 Credentials System.Net.Network

Credential

Chứa thông tin về việc xác thực người dùng trên server.

Chương 5. CarbonTools

5.2.1.2.Lớp DataOGCCapabilities

™ Lớp này chứa kết quả trả về sau khi thực hiện GetCapabilities request. ™ Các thuộc tính quan trọng STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 1 ServiceType CarbonTools.Co re.Base.OGCSer viceTypes Xác định loại service cần lấy thông tin là WFS hay WMS Có 2 giá trị là: CarbonTools.Core.Base.OGCServic eTypes.WFS: Cho biết loại service cần lấy thông tin là WFS

CarbonTools.Core.Base.OGCServic eTypes.WMS: Cho biết loại service cần lấy thông tin là WMS

2 RequestItems RequestItemCo

llection

Chứa các thông tin về các request được server hỗ trợ (như:

GetCapabilites, GetMap…). Các thông tin này gồ: tên request, địa chỉđể gởi request, các giao thức được hỗ trợ cho request (GET, POST).

3 LayerItems CarbonTools.C

ore.OGCCapabi lities.LayerItem

Danh sách các loại Feature có trên server

Chương 5. CarbonTools

5.2.1.3.Lớp HandlerOGCCapabilities

™ Lớp này có tác dụng thực hiện việc gởi request lên server theo phương pháp bất đồng bộ và nhận kết quả trả về. ™ Các thuộc tính STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 1 Source CarbonTools.Core.OGC Capabilities.SourceOGC Capabilities Chứa các thông tin của request cần gởi lên server 2 Data CarbonTools.Core.OGC Capabilities.DataOGCCa pabilities Chứa kết quả trả về sau khi gởi request

3 Synchronous boolean Cho biết có thực hiện

request theo kiểu đồng bộ hay không

4 OperationDone EventHandler Đây là 1 delegate. có

tác dụng thông báo khi mà quá trình nhận dữ liệu không đồng bộ được thực hiện xong. 5 ProgressChange

d

EventHandler Đây là 1 delegate, có

tác dụng thông báo về tình trạng của tiến trình nhận dữ liệu không đồng bộ.

Chương 5. CarbonTools

™ Phương thức của lớp này

GetCapabilities(): Gởi request lên server với các thông tin chứa trong Source và lấy kết quả về, lưu trong Data.

™ Ví dụ thực hiện request:

SourceOGCCapabilities source = new SourceOGCCapabilities(); source.Version = "1.1.1";

source.Address = new

Uri(“http://localhost/OpenGISServer/VNesOpenGISServe r.aspx”, true);

HandlerOGCCapabilites handler = new HandlerOGCCapabilities(source);

//Hàm handler_ProgressChanged được gọi mỗi khi có sự //thay

đổi về trạng thái của tiến trình nhận dữ liệu

handler.ProgressChanged += new

EventHandler(handler_ProgressChanged);

//Sau khi quá trình nhận dữ liệu kết thúc thì hàm

//handler_OperationDone được gọi

handler.OperationDone += new

EventHandler(handler_OperationDone);

//Gởi request theo phương pháp không đồng bộ

handler.Synchronous = false;

//Sau khi gọi hàm này thì ta vẫn có thể thực hiện tiếp //các tác vụ khác vì quá trình gởi và nhận dữ liệu //được thực hiện

riêng biệt trong 1 tiểu trình khác.

handler.GetCapabilities();

//Hàm đáp ứng sự kiện khi tiến trình thay đổi trạng //thái

private void handler_ProgressChanged(object sender,

EventArgs e)

Chương 5. CarbonTools

//Sử dụng Progressbar đê thể hiện tiến trình thực

//hiện request, cập nhật giá trị của Progressbar khi

//tiến trình thay đổi trạng thái.

progressBar1.Value = handler.GetProgress(100); statusBarPanel1.Text = handler.State.ToString(); }

//Hàm đáp ứng sự kiện khi tiến trình hoàn thành

private void handler_OperationDone(object sender, EventArgs

e)

{

//Lấy danh sách các loại Feature (Layer) trên server

LayerItemCollection featureTypes = ((DataOGCCapabilities)handler.Data).LayerItems; enumerator = layers.GetEnumerator(); while ( enumerator.MoveNext() ) { LayerItem currentType = (LayerItem)enumerator.Current; string TypeName = currentType.Name; string TypeTitle = currentType.Title; }

}

Một phần của 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 103 - 107)

Tải bản đầy đủ (PDF)

(183 trang)