Chương 6. Cài đặt chương trình OpenGISServer
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"
xsi:schemaLocation="http://www.opengis.net/wfs
../wfs/1.0.0/WFS-transaction.xsd">
(cid:153) Mỗi XmlNode sẽ tương ứng với 1 tag trong chuỗi Xml, chẳng hạn tag
(cid:153) Mỗi XmlNode có chứa nhiều XmlNode con, và có thể chứa các Attributes
của node đó.
Chẳng hạn, trong ví dụ trên thì node
là
116
Node
Chương 6. Cài đặt chương trình OpenGISServer
(cid:153) Đọc dữ liệu từ chuỗi Xml này.
XmlDocument requestDocument = new XmlDocument();
requestDocument.LoadXml(sRequestXml);
(cid:131) Trước hết, cần phải tạo 1 XmlDocument tương ứng với chuỗi này:
XmlNode first = requestDocument.FirstNode;
(cid:131) Lấy node đầu tiên
XmlNodeList childs = first.ChildNodes;
XmlNode updateNode = childs[0];
XmlNode deleteNode = childs[1];
(cid:131) Lấy 2 node con
string sUpdateTypeName = updateNode.Attributes[“typeName”];
(cid:131) Lấy attribute “typeName” của node
(cid:131) Nếu như node không chứa attribute này thì hàm này trả về null.
(cid:131) Lấy giá trị của Node
string Name = updateNode.FirstChild.FirstChild.InnerXml;
XmlNode
(cid:131) Lấy tên của Node
string sNodeName = updateNode.Name;
node
Khi đó sNodeName = “wfs:Update”, trong đó “wfs” là NameSpace của Update”.
(cid:131) Lấy tên của Node
string sLocalNodeName = updateNode.LocalName;
tên node
117
Khi đó sLocalNodeName = “Update”.
Chương 6. Cài đặt chương trình OpenGISServer
string xmlUpdate = updateNode.OuterXml;
(cid:131) Để lấy chuỗi Xml tương ứng với Node
Khi đó, chuỗi xmlUpdate sẽ có giá trị là:
6.5. Các lớp trong chương trình
Tên lớp Mô tả
Others/ExceptionBuilder Xây dựng chuỗi XML dùng để báo
các lỗi về cho client khi có lỗi trong
request
Other/OtherTasks Chứa tên các FeatureType trong
chương trình
Chức các thuộc tính của các
FeatureType
Chứa các hàm thực hiện những tác vụ
phụ trong chương trình
WFS/CheckBasicParameterClasses/Abstra Lớp trừu tượng, có tác dụng lấy các
ctHTTPClass tham số mà client gửi lên trong
118
request.
Chương 6. Cài đặt chương trình OpenGISServer
WFS/CheckBasicParameterClasses/HTTP
Kế thừa từ lớp
GetClass CheckBasicParameterClasses/Abstrac
tHTTPClass, có tác dụng lấy các tham
số mà client gửi lên trong 1 HTTP
GET request
WFS/CheckBasicParameterClasses/HTTP Kế thừa từ lớp
PostClass CheckBasicParameterClasses/Abstrac
tHTTPClass, có tác dụng lấy các tham
số mà client gửi lên trong 1 HTTP
POST request
WFS/FeatureClass/AbstractFeature Là 1 lớp abstract, gồm các hàm dùng
để thực hiện các tác vụ liên quan đến
các FeatureType trên Server, chẳng
hạn như:
Đọc từ cơ sở dữ liệu để lấy về các
Feature thỏa 1 số điều kiện nào đó
Tạo ra chuỗi Xml mô tả các Feature
để trả về cho client (chức năng này
được cài đặt cụ thể ở các lớp con của
nó).
Lấy các thuộc tính của Feature
119
……
Chương 6. Cài đặt chương trình OpenGISServer
WFS/FeatureClass/DistrictFeature
Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên loại Feature “Quan”:
Lấy các thuộc tính của loại Feature
“Quan”.
Tạo chuỗi Xml mô tả với các Feature
“Quan” lấy được từ cơ sở dữ liệu để
trả về cho client
WFS/FeatureClass/PlaceFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“nơi chốn”
Lấy các thuộc tính của loại Feature
“noi chon”.
Tạo chuỗi Xml mô tả với các Feature
“noi chon” lấy được từ cơ sở dữ liệu
để trả về cho client
WFS/FeatureClass/RiverFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“Song”
Lấy các thuộc tính của loại Feature
“Song”.
Tạo chuỗi Xml mô tả với các Feature
120
“Song” lấy từ csdl trả về cho client.
Chương 6. Cài đặt chương trình OpenGISServer
WFS/FeatureClass/RoadFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“Duong”
Lấy các thuộc tính của loại Feature
“Duong”.
Tạo chuỗi Xml mô tả với các Feature
“Duong” lấy được từ cơ sở dữ liệu để
trả về cho client
WFS/FeatureClass/UniversityEnrollmentF Kế thừa từ lớp
eature WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“UBNDQuan”
Lấy các thuộc tính của loại Feature
“UBNDQuan”.
Tạo chuỗi Xml mô tả với các Feature
“UBNDQuan” lấy được từ cơ sở dữ
liệu để trả về cho client
WFS/FeatureClass/YPageSitFeature Kế thừa từ lớp
WFS/FeatureClass/AbstractFeature.
Có chức năng thực hiện các thao tác
trên các Feature thuộc loại Feature
“YPageSit”
Lấy các thuộc tính của loại Feature
“YPageSit”.
Tạo chuỗi Xml mô tả với các Feature
121
“YPageSit” lấy từ csdl trả về client.
Chương 6. Cài đặt chương trình OpenGISServer
WFS/FilterClasses/FilterSolution Có chức năng tạo ra chuỗi query dùng
để truy vấn cơ sở dữ liệu từ đối tượng
XmlDocument mô tả chuỗi Filter.
WFS/WFS Operation Là 1 lớp ảo, có tác dụng lấy các tham
Classes/DescribeFeatureTypeSolution/Get số của DescribeFeatureType request
ParameterClasses/AbstractHttp .
Là lớp con của lớp WFS/WFS WFS/WFS Operation
OperationClasses/DescribeFeatureTyp Classes/DescribeFeatureTypeSolution/Get
eSolution/GetParameterClasses/Abstr ParameterClasses/HttpGetRequest
actHttp.
Có tác dụng lấy các tham số của
DescribeFeatureType request được
gởi lên bằng giao thức HTTP GET.
WFS/WFS Operation Là lớp con của lớp WFS/WFS
Classes/DescribeFeatureTypeSolution/Get OperationClasses/DescribeFeatureTyp
ParameterClasses/HttpPostRequest eSolution/GetParameterClasses/Abstr
actHttp.
Có tác dụng lấy các tham số của
DescribeFeatureType request được
gởi lên bằng giao thức HTTP POST.
Có chức năng nhận 1 WFS/WFS Operation
DescribeFeatureType request, lấy về Classes/DescribeFeatureTypeSolution/Des
mô tả của các loại Feature và tạo cribeFeatureTypeSolution
chuỗi response bằng Xml.
Là 1 lớp ảo, có tác dụng lấy các tham WFS/WFS Operation
số của GetFeature request . Classes/GetFeatureSolution/GetParameter
Classes/AbstractHttp
WFS/WFS Operation Là lớp con của lớp WFS/WFS
122
Classes/GetFeatureSolution/GetParameter OperationClasses/GetFeatureSolution/
Chương 6. Cài đặt chương trình OpenGISServer
Classes/HttpGetRequest GetParameterClasses/AbstractHttp.
Có tác dụng lấy các tham số của
GetFeature request được gởi lên
bằng giao thức HTTP GET.
WFS/WFS Operation Là lớp con của lớp WFS/WFS
Classes/GetFeatureSolution/GetParameter OperationClasses/GetFeatureSolution/
Classes/HttpPostRequest GetParameterClasses/AbstractHttp.
Có tác dụng lấy các tham số của
GetFeature request được gởi lên
bằng giao thức HTTP POST.
Có chức năng nhận 1 GetFeature WFS/WFS Operation
request, truy vấn cơ sở dữ liệu để lấy Classes/GetFeatureSolution/GetFeatureSo
về các Feature được yêu cầu và tạo lution
chuỗi response bằng Xml.
WFS/WFS Operation Là 1 lớp ảo, có tác dụng lấy các tham
Classes/LockFeatureSolution/GetParamet số của LockFeature request .
erClasses/AbstractHttp
WFS/WFS Operation Là lớp con của lớp WFS/WFS
Classes/LockFeatureSolution/GetParamet OperationClasses/LockFeatureSolutio
erClasses/HttpGetRequest n/GetParameterClasses/AbstractHttp.
Có tác dụng lấy các tham số của
LockFeature request được gởi lên
bằng giao thức HTTP GET.
Là lớp con của lớp WFS/WFS WFS/WFS Operation
OperationClasses/LockFeatureSolutio Classes/LockFeatureSolution/GetParamet
n/GetParameterClasses/AbstractHttp. erClasses/HttpPostRequest
Có tác dụng lấy các tham số của
LockFeature request được gởi lên
123
bằng giao thức HTTP POST.
Chương 6. Cài đặt chương trình OpenGISServer
WFS/WFS Operation Có chức năng nhận 1 LockFeature
Classes/LockFeatureSolution/LockFeature request, khóa các Feature theo yêu cầu
Solution và tạo chuỗi response bằng Xml.
WFS/WFS Operation Gồm các hàm thực hiện các thao tác
Classes/LockFeatureSolution/DataBaseAc trên cơ sở dữ liệu liên quan tới chức
cess năng khóa và mở khóa các Feature.
Có chức năng nhận Transaction WFS/WFS Operation
request với Operation là Delete, được Classes/TransactionSolution/OperationSol
gởi lên bằng giao thức HTTP GET, ution/HTTPGETDelete
thực hiện xóa các Feature theo yêu
cầu và tạo response tương ứng.
Có chức năng nhận Transaction WFS/WFS Operation
request với Operation là Delete, được Classes/TransactionSolution/OperationSol
gởi lên bằng HTTP POST, thực hiện ution/HTTPPOSTDelete
xóa các Feature theo yêu cầu và tạo
response tương ứng
Có chức năng nhận Transaction WFS/WFS Operation
request với Operation là Update, Classes/TransactionSolution/OperationSol
được gởi lên bằng HTTP POST, thực ution/HTTPPOSTUpdate
hiện việc cập nhật các Feature theo
yêu cầu và tạo response tương ứng
Có chức năng nhận Transaction WFS/WFS Operation
request với Operation là Insert, được Classes/TransactionSolution/OperationSol
gởi lên bằng HTTP POST, thực hiện ution/HTTPPOSTInsert
việc thêm các Feature theo yêu cầu và
tạo response tương ứng.
Gồm các hàm dùng để thao tác trên cơ WFS/WFS Operation
sở dữ liệu. Thực hiện thêm, xóa, sửa Classes/TransactionSolution/DataBaseAcc
124
các bảng trong csdl theo yêu cầu. ess
Chương 6. Cài đặt chương trình OpenGISServer
WFS/WFS Operation Có chức năng nhận 1 Transaction
Classes/TransactionSolution/TransactionS request, thực hiện yêu cầu transaction
olution tương ứng và trả về chuỗi response
bằng Xml.
WFS/WFS Operation Có chức năng nhận 1 GetCapabilities
Classes/GetCapabilitiesSolution request, lấy thông tin về các khả năng
của server và trả về chuỗi response
bằng Xml.
WFS/WFS Operation Chứa 1 loại Feature cần truy vấn và
Classes/FeatureRequest các điều kiện truy vấn đối với lớp đó.
WFS/WFSSolution Nhận 1 WFS request, xác định loại
request cụ thể và gọi lớp tương ứng để
thực hiện request này
Bảng 6.8.Các lớp trong chương trình
http://localhost/OpenGISServer/VNesOpenGISServer.aspx
(cid:153) Chương trình có 1 trang ASP.NET ở địa chỉ
Trang này sẽ trực tiếp nhận các request từ client, thực hiện 1 số kiểm tra để đảm
bảo tính hợp lệ của request, xác định loại request là WFS hay WMS và gọi lớp
tương ứng để đáp ứng request.
(cid:153) Các file Xml lưu trữ các thông tin về server.
(cid:131) File XmlFiles/WFS_Capabilities.xml: File này chứa nội dung của tài liệu
Xml dùng làm response cho request GetCapabilities.
(cid:131) File XmlFiles/ExceptionFrame.xml: File này chứa phần khung nội dung
của chuỗi Xml dùng làm response khi request có lỗi.
(cid:131) Các file trong thư mục WFS/FeatureTypeFiles: đây là các file chứa các tài
liệu xml dùng để mô tả các loại Feature. Các file này hỗ trợ cho response
125
của DescribeFeatureType request
Chương 7. Cài đặt các chương trình client
Chương 7. Cài đặt các chương trình client
7.1. Cài đặt chương trình OpenGisClientDemo
7.1.1. Giới thiệu
7.1.1.1. Tính năng
(cid:153) Chương trình OpenGISClient là 1 chương trình được cài đặt bằng C# ở dạng
Window Form.
(cid:153) Chức năng của chương trình là minh họa 1 cách cụ thể, rõ ràng việc thực
hiện các request WFS và WMS lên các server hỗ trợ WFS và WMS.
(cid:153) Chương trình lưu 1 danh sách các server hỗ trợ WFS và WMS, có thể thêm
các server mới. Trong quá trình thực hiện request, ta có thể chọn bất kì
server nào để gởi request và nhận kết quả từ server đó.
(cid:153) Các request mà OpenGISClient hỗ trợ gồm:
(cid:131) WFS:
• GetCapabilities
• DescribeFeatureType
• GetFeature
• LockFeature
• Transaction
(cid:131) WMS:
• GetCapabilities
• GetMap
(cid:153) Chương trình sử dụng bộ thư viện CarbonTools. Bộ thư viện này hỗ trợ thực
126
hiện request.
Chương 7. Cài đặt các chương trình client
7.1.1.2. Màn hình giao diện
7.1.1.2.1. Màn hình chính
Hình 7.1. Màn hình chính
127
Chương 7. Cài đặt các chương trình client
7.1.1.2.2. Màn hình minh họa thực hiện request WFS - GetCapabilities
Hình 7.2.Màn hình minh họa thực hiện request WFS – GetCapabilities
128
Chương 7. Cài đặt các chương trình client
7.1.1.2.3. Màn hình minh họa thực hiện request WFS – DescribeFeatureType.
Hình 7.3.Màn hình minh họa thực hiện request WFS – DescribeFeatureType
129
Chương 7. Cài đặt các chương trình client
7.1.1.2.4. Màn hình minh họa thực hiện request WFS – GetFeature
Hình 7.4.Màn hình minh họa thực hiện request WFS – GetFeature
130
Chương 7. Cài đặt các chương trình client
7.1.1.2.5. Màn hình minh họa thực hiện request WFS – GetFeature
Hình 7.5.Màn hình minh họa thực hiện request WFS – GetFeature
131
Chương 7. Cài đặt các chương trình client
7.1.1.2.6. Màn hình minh họa thực hiện request WFS – Transaction
Hình 7.6.Màn hình minh họa thực hiện request WFS – Transaction
132
Chương 7. Cài đặt các chương trình client
7.1.1.2.7. Màn hình minh họa thực hiện request WMS – GetCapabilities
Hình 7.7.Màn hình minh họa thực hiện request WMS – GetCapabilities
133