Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
558,29 KB
Nội dung
Chương Bộ lọc (Filter) 80 Chương Bộ lọc (Filter) Ngồi phép tốn so sánh chuẩn (=, >, =, , =, 90 Chương CarbonTools Chương CarbonTools 5.1 Giới thiệu CarbonTools toolkit dành cho NET, viết mơi trường NET Nó cung cấp lớp, hàm hỗ trợ cho việc giao tiếp với server hỗ trợ WFS WMS Nó giúp thực dễ dàng request : GetCapabilities, GetMap… , nhận tài liệu Xml trả về, đọc hiểu tài liệu Xml chuyển thành dạng liệu dễ xử lí Bộ CarbonTools có phiên 2.0.2, download miễn phí địa http://www.thecarbonproject.com/products/carbon.html Sau install file setup CarbonTools2SDK.msi, ta : Hai file dll dùng làm thư viện CarbonTools.Controls.dll CarbonTools.Core.dll Để sử dụng lớp, hàm toolkit cung cấp, cần đưa thư viện vào project Một tài liệu hướng dẫn sử dụng giới thiệu chi tiết lớp, hàm cung cấp Ba chương trình ví dụ mẫu sử dụng thư viện Tuy nhiên, toolkit phiên 2.0.2 thiếu nhiều chức Chẳng hạn như: Không hỗ trợ đọc hiểu kết trả từ DescribeFeatureType request Không hỗ trợ Filter cho loại Feature thực GetFeature request Đối với request LockFeature Transaction, hỗ trợ việc gởi tài liệu Xml chứa nội dung cần gởi lên server nhận kết trả tài liệu Xml Ta phải tự tạo tự đọc hiểu tài liệu Xml 91 Chương CarbonTools 5.2 Một số ví dụ việc sử dụng thư viện CarbonTools 5.2.1 Dùng CarbonTools thực GetCapabilities request Để thực GetCapabilities request ta chủ yếu sử dụng lớp quan trọng CarbonTools, chúng nằm Package CarbonTools.Core.OGCCapabilities: SourceOGCCapabilites, DataOGCCapabilities HandlerOGCCapabilities 5.2.1.1 Lớp SourceOGCCapabilities Lớp chứa thông tin cần thiết cho việc thực request như: địa server để gởi request lên, version WFS hay WMS mà server cung cấp… SourceOGCCapabilities gồm thuộc tính sau: STT Tên thuộc tính Kiểu liệu Ý nghĩa Address System.Uri Chứa địa server nơi mà request gởi đến ServiceType CarbonTools.Core.Ba Xác định loại service cần lấy se.OGCServiceTypes thơng tin WFS hay WMS Có giá trị là: CarbonTools.Core.Base.OGCS erviceTypes.WFS: Cho biết loại service cần lấy WFS CarbonTools.Core.Base.OGCS erviceTypes.WMS: Cho biết loại service cần lấy WMS Version string Cho biết phiên WFS hay WMS muốn lấy từ server Credentials System.Net.Network Chứa thông tin việc xác Credential thực người dùng server Bảng 5.1 Các thuộc tính SourceOGCCapabilities 92 Chương CarbonTools 5.2.1.2 Lớp DataOGCCapabilities Lớp chứa kết trả sau thực GetCapabilities request Các thuộc tính quan trọng STT Tên thuộc tính Kiểu liệu Ý nghĩa ServiceType CarbonTools.Co Xác định loại service cần lấy thông re.Base.OGCSer tin WFS hay WMS viceTypes Có giá trị là: CarbonTools.Core.Base.OGCServic eTypes.WFS: Cho biết loại service cần lấy thông tin WFS CarbonTools.Core.Base.OGCServic eTypes.WMS: Cho biết loại service cần lấy thông tin WMS RequestItems RequestItemCo Chứa thông tin request llection server hỗ trợ (như: GetCapabilites, GetMap…) Các thông tin gồ: tên request, địa để gởi request, giao thức hỗ trợ cho request (GET, POST) LayerItems CarbonTools.C Danh sách loại Feature có ore.OGCCapabi server lities.LayerItem Bảng 5.2 Các thuộc tính quan trọng DataOGCCapabilities 93 Chương CarbonTools 5.2.1.3 Lớp HandlerOGCCapabilities Lớp có tác dụng thực việc gởi request lên server theo phương pháp bất đồng nhận kết trả Các thuộc tính STT Ý nghĩa Source CarbonTools.Core.OGC Chứa thông tin request cần gởi lên Capabilities server CarbonTools.Core.OGC Chứa kết trả Capabilities.DataOGCCa Kiểu liệu Capabilities.SourceOGC Tên thuộc tính sau gởi request Data pabilities Synchronous boolean Cho biết có thực request theo kiểu đồng hay không OperationDone EventHandler Đây delegate có tác dụng thơng báo mà q trình nhận liệu khơng đồng thực xong ProgressChange EventHandler d Đây delegate, có tác dụng thơng báo tình trạng tiến trình nhận liệu khơng đồng Bảng 5.3 Các thuộc tính HandlerOGCCapabilities 94 Chương CarbonTools Phương thức lớp GetCapabilities(): Gởi request lên server với thông tin chứa Source lấy kết về, lưu Data Ví dụ thực 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 gọi có //thay đổi trạng thái tiến trình nhận liệu handler.ProgressChanged += new EventHandler(handler_ProgressChanged); //Sau trình nhận liệu kết thúc hàm //handler_OperationDone gọi handler.OperationDone += new EventHandler(handler_OperationDone); //Gởi request theo phương pháp không đồng handler.Synchronous = false; //Sau gọi hàm ta thực tiếp //các tác vụ khác trình gởi nhận liệu //được thực riêng biệt tiểu trình khác handler.GetCapabilities(); //Hàm đáp ứng kiện tiến trình thay đổi trạng //thái private void handler_ProgressChanged(object sender, EventArgs e) { 95 Chương CarbonTools //Sử dụng Progressbar đê thể tiến trình thực //hiện request, cập nhật giá trị Progressbar //tiến trình thay đổi trạng thái progressBar1.Value = handler.GetProgress(100); statusBarPanel1.Text = handler.State.ToString(); } //Hàm đáp ứng kiện tiến trình hoàn thành private void handler_OperationDone(object sender, EventArgs e) { //Lấy danh sách loại Feature (Layer) 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; } } 5.2.2 Dùng CarbonTools thực GetFeature request CarbonTools hỗ trợ request khơng đầy đủ, không hỗ trợ Filter cho Feature Để thực loại request này, ta sử dụng lớp sau: SourceWFS, HandlerWFS DataFeatures 5.2.2.1 Lớp CarbonTools.Core.WFS.SourceWFS Lớp chứa thông tin request mà client cần gởi lên server 96 Chương CarbonTools Các thuộc tính quan trọng STT Tên thuộc tính Kiểu liệu Ý nghĩa Address System.Uri Địa cần phải gởi request Layers ArrayList Danh sách loại Feature cần lấy MaxFeatures int Là tham số MaxFeature request Version string Phiên WFS mà server cài đặt Bảng 5.4 Các thuộc tính CarbonTools.Core.WFS.SourceWFS 5.2.2.2 Lớp CarbonTools.Core.Features.DataFeatures Lớp chứa thông tin Feature lấy từ server sau thực request Các thuộc tính STT Tên thuộc tính Kiểu liệu Ý nghĩa BBox CarbonTools.Core.BoundingBox Hình chữ nhật bao Feature lấy Features CarbonTools.Core.Features.Item Danh sách Collection Feature lấy với thông tin chi tiết Feature Bảng 5.5 Các thuộc tính CarbonTools.Core.Features.DataFeatures 97 ... khả dịch vụ có sử dụng Filter Tài liệu cho biết dịch vụ có hỗ trợ loại Filter Chẳng hạn Web Feature Service có sử dụng Filter cần phải thêm đoạn mô tả đưới tài liệu mơ tả khả để thơng báo cho. .. Chương Bộ lọc (Filter) Thành phần cho biết dịch vụ hỗ trợ phép toán số học Thành phần cho biết dịch vụ có hỗ trợ phép tốn cộng, trừ, nhân, chia Thành phần... Thành phần dùng để dịch vụ có chứa Filter phép tốn And, Or, Not Thành phần dùng để loại phép toán so sánh dịch vụ cung