intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ - 6

Chia sẻ: Cao Tt | Ngày: | Loại File: PDF | Số trang:18

75
lượt xem
9
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 4. Bộ lọc (Filter) 80 Chương 4. Bộ lọc (Filter)

Chủ đề:
Lưu

Nội dung Text: Web cho ứng dụng GIS và xây dựng ứng dụng minh họa khai thác dịch vụ - 6

  1. Chương 4. Bộ lọc (Filter) 80
  2. Chương 4. Bộ lọc (Filter) Ngoài các phép toán so sánh chuẩn (=, >, =,
  3. Chương 4. Bộ lọc (Filter) Thành phần được dùng để kiểm tra xem giá trị trong nội dung của nó có rỗng hay không. Giá trị 0 là giá trị khác rỗng. Thành phần được dùng để kiểm tra xem 1 giá trị có nằm trong 1 khoảng được chỉ ra bởi 2 thành phần là và hay không. 4.6. Các phép toán Logic 4.6.1. Giới thiệu: Các phép toán logic được dùng để kết hợp các biểu thức điều kiện lại với nhau. Phép toán AND sẽ có giá trị là TRUE nếu như tất cả các phép toán kết hợp có giá trị là TRUE. Phép toán OR sẽ có giá trị là TRUE nếu như có ít nhất 1 phép toán trong số các phép toán kết hợp có giá trị là TRUE. Phép toán NOT dùng để đảo ngược kết quả của 1 biểu thức. 4.6.2. Mô tả: Dưới đây là đoạn lược đồ XML mô tả các phép toán so sánh này: 82
  4. Chương 4. Bộ lọc (Filter) Các thành phần , hay được dùng để kết hợp các biểu thức logic, biểu thức không gian hay biểu thức vô hướng để tạo ra 1 biểu thức kết hợp phức tạp. 4.7. Định danh của Feature (Feature Identifier): 4.7.1. Giới thiệu: Một định danh của Feature được dùng để chỉ 1 Feature địa lý cụ thể trong ngữ cảnh của dịch vụ web chứa Feature này. 83
  5. Chương 4. Bộ lọc (Filter) 4.7.2. Mô tả: Thành phần được mô tả bởi đoạn lược đồ XML sau: Thành phần được dùng để chỉ ra các Feature trong 1 biểu thức Filter hoặc tong các tài liệu XML khác. 4.8. Biểu thức (Expressions): 4.8.1. Giới thiệu: Một biểu thức là 1 sự kết hợp của 1 hoặc nhiều biểu tượng (symbol) và cho kết quả là TRUE hoặc là FALSE. 4.8.2. Mô tả: Một biểu thức có thể được tạo nên bởi các thành phần sau đây: , , , , , và . 4.9. Các phép toán số học: 4.9.1. Giới thiệu: Các thành phần được đề cập trong phần này gồm có các phép toán cộng, trừ, nhân, chia…. Đây là các phép toán 2 ngôi, nhận 2 tham số và trả về 1 kết quả. 4.9.2. Mô tả: Dưới đây là đoạn lược đồ XML mô tả các phép toán này: 84
  6. Chương 4. Bộ lọc (Filter) Thành phần thực hiện phép toán cộng, hai tham số của nó có thể là bất kì biểu thức nào. Thành phần thực hiện phép toán trừ, thành phần thứ 1 là số bị trừ, thành phần thứ 2 là số trừ, hai tham số của nó có thể là bất kì biểu thức nào. Thành phần thực hiện phép toán nhân, hai tham số của nó có thể là bất kì biểu thức nào. Thành phần thực hiện phép toán chia,thành phần thứ nhất là số bị chia, thành phần thứ 2 là số chia, hai tham số của nó có thể là bất kì biểu thức nào. Thành phần thứ 2 phải khác 0. 4.10. Các hàm (Functions) 4.10.1.Giới thiệu: Phần này đề cập đến hàm có giá trị đơn, sử dụng thành phần . Một hàm là 1 thủ tục dùng để thực hiện 1 tác vụ tính toán nào đó. Một hàm có thể không nhận tham số hoặc nhận nhiều tham số và trả về 1 kết quả duy nhất. 85
  7. Chương 4. Bộ lọc (Filter) 4.10.2.Mô tả: Đoạn lược đồ XML dưới đây mô tả các hàm này: Một hàm bao gồm tên hàm, được chỉ ra bởi thuộc tính name, không có hoặc có nhiều tham số chứa trong thành phần . Các tham số có thể là bất kì biểu thức nào. 4.11. Các khả năng về Filter: Phần này định nghĩa 1 lược đồ mô tả các khả năng, lược đồ này có thể được dùng trong các tài liệu mô tả các khả năng của 1 dịch vụ có sử dụng Filter. Tài liệu này cho biết là dịch vụ này có hỗ trợ các loại Filter nào. Chẳng hạn như 1 Web Feature Service có sử dụng Filter sẽ cần phải thêm đoạn mô tả đưới đây trong tài liệu mô tả các khả năng của nó để thông báo cho các client biết là nó có hỗ trợ các loại Filter nào. 86
  8. Chương 4. Bộ lọc (Filter) Một dịch vụ hỗ trợ các Filter về không gian sẽ thêm phần mô tả các khả năng về Filter không gian. Các khả năng về Filter không gian bao gồm các khả năng lọc dữ liệu không gian dựa trên hình chữ nhật bao và các phép toán về không gian khác là :Equals, Disjoint, Touches, Within, Overlaps, Crosses, Intersects, Contains, DWithin và Beyond. Các khả năng về Filter không gian được mô tả trong đoạn lược đồ XML dưới đây: 87
  9. Chương 4. Bộ lọc (Filter) Các khả năng về các Filter vô hướng bao gồm khả năng xử lí các biểu thức logic, biểu thức so sánh, biểu thức chứa các phép toán số học và biểu thức chứa các hàm. Đoạn lược đồ dưới đây mô tả khả năng về các Filter vô hướng: Thành phần dùng để chỉ ra rằng dịch vụ này có chứa các Filter của các phép toán And, Or, Not. Thành phần dùng để chỉ ra các loại phép toán so sánh được dịch vụ này cung cấp. Thành phần cho biết là các phép toán >, =,
  10. Chương 4. Bộ lọc (Filter) Thành phần cho biết là dịch vụ này hỗ trợ các phép toán số học nào. Thành phần cho biết dịch vụ này có hỗ trợ các phép toán là cộng, trừ, nhân, chia. Thành phần dùng để chỉ ra tên các hàm được hỗ trợ và số lượng tham số của từng hàm. Ví dụ: Ví dụ dưới đây là 1 đoạn mô tả các khả năng Filter của 1 dịch vụ. Tài liệu này cho biết dịch vụ này hỗ trợ tất cả các loại Filter đã được mô tả trong các phần trước cộng thêm các hàm được liệt kê: 89
  11. Chương 4. Bộ lọc (Filter) MIN MAX SIN COS 90
  12. Chương 5. CarbonTools Chương 5. CarbonTools 5.1. Giới thiệu CarbonTools là bộ toolkit dành cho .NET, được viết bằng môi trường .NET. Nó cung cấp các lớp, các hàm hỗ trợ cho việc giao tiếp với các server hỗ trợ WFS và WMS. Nó giúp thực hiện dễ dàng các request như : GetCapabilities, GetMap… , nhận tài liệu Xml trả về, đọc hiểu tài liệu Xml này và chuyển nó thành các dạng dữ liệu dễ xử lí. Bộ CarbonTools hiện đang có phiên bản 2.0.2, có thể download miễn phí tại địa chỉ http://www.thecarbonproject.com/products/carbon.html Sau khi install file setup CarbonTools2SDK.msi, ta sẽ được : Hai file .dll dùng làm thư viện là CarbonTools.Controls.dll và CarbonTools.Core.dll. Để sử dụng các lớp, các hàm do toolkit này cung cấp, chỉ cần đưa các thư viện này vào project của mình. Một tài liệu hướng dẫn sử dụng giới thiệu chi tiết các lớp, các hàm được cung cấp. Ba chương trình ví dụ mẫu sử dụng thư viện. Tuy nhiên, bộ toolkit phiên bản 2.0.2 này vẫn còn thiếu nhiều chức năng. Chẳng hạn như: Không hỗ trợ đọc hiểu kết quả trả về từ DescribeFeatureType request Không hỗ trợ Filter cho các loại Feature khi thực hiện GetFeature request Đối với 2 request LockFeature Transaction, chỉ hỗ trợ việc gởi các tài liệu Xml chứa nội dung cần gởi lên server và nhận kết quả trả về là 1 tài liệu Xml. Ta phải tự tạo và tự đọc hiểu các tài liệu Xml này. 91
  13. Chương 5. CarbonTools 5.2. Một số ví dụ về việc sử dụng bộ thư viện CarbonTools 5.2.1. Dùng CarbonTools thực hiện GetCapabilities request Để 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 Xác định loại service cần lấy se.OGCServiceTypes 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 Chứa thông tin về việc xác Credential thực người dùng trên server. Bảng 5.1. Các thuộc tính của SourceOGCCapabilities 92
  14. 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 Xác định loại service cần lấy thông re.Base.OGCSer tin là WFS hay WMS viceTypes 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 Chứa các thông tin về các request llection đượ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). LayerItems 3 CarbonTools.C Danh sách các loại Feature có trên ore.OGCCapabi server lities.LayerItem Bảng 5.2. Các thuộc tính quan trọng của DataOGCCapabilities 93
  15. 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 Chứa các thông tin của Capabilities.SourceOGC request cần gởi lên Capabilities server 2 Data CarbonTools.Core.OGC Chứa kết quả trả về Capabilities.DataOGCCa sau khi gởi request pabilities 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 EventHandler Đây là 1 delegate, có d 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ộ. Bảng 5.3. Các thuộc tính của HandlerOGCCapabilities 94
  16. 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) { 95
  17. 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; } } 5.2.2. Dùng CarbonTools thực hiện GetFeature request CarbonTools hỗ trợ request này không đầy đủ, nó không hỗ trợ Filter cho các Feature. Để thực hiện loại request này, ta sử dụng các lớp chính như sau: SourceWFS, HandlerWFS và DataFeatures 5.2.2.1. Lớp CarbonTools.Core.WFS.SourceWFS Lớp này chứa các thông tin về request mà client cần gởi lên server 96
  18. Chương 5. CarbonTools Các thuộc tính quan trọng STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 1 Address System.Uri Địa chỉ cần phải gởi request 2 Layers ArrayList Danh sách các loại Feature cần lấy về 3 MaxFeatures int Là tham số MaxFeature trong request 4 Version string Phiên bản WFS mà server cài đặt Bảng 5.4. Các thuộc tính của CarbonTools.Core.WFS.SourceWFS 5.2.2.2. Lớp CarbonTools.Core.Features.DataFeatures Lớp này chứa các thông tin về các Feature lấy được từ server sau khi thực hiện request Các thuộc tính chính STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 1 BBox CarbonTools.Core.BoundingBox Hình chữ nhật bao của các Feature lấy được 2 Features CarbonTools.Core.Features.Item Danh sách các Collection Feature lấy được cùng với thông tin chi tiết của các Feature đó. Bảng 5.5. Các thuộc tính của CarbonTools.Core.Features.DataFeatures 97
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2