Tổng quan về MapServer - Xử lý kết nối các loại dữ liệu(Phần 5)

vào lúc 01:14
    Ảnh bản đồ được tạo từ nhiều layer, mỗi layer có thể được vẽ từ các loại dữ liệu khác nhau lấy từ nhiều nguồn khác nhau. MapServer sử dụng các thư viện riêng cho mỗi loại kết nối, hơn nữa với mã nguồn mở MapServer cho phép biên dịch thêm vào các thư viện xử lý dữ liệu.

1.     Kết nối dữ liệu mặc định ESRI Shapefiles

    Đây là kiểu dữ liệu được hỗ trợ mặc định bởi MapServer, xem phần Tìm hiều Mapfile mục Layer object để biết cách khai báo đối tượng Layer trong Mapfile.

2.       Kết nối dữ liệu Raster

a)      Biên dịch thư viện GDAL trên môi trường Window
GDAL có thể được biên dịch trên môi trường Windows sử dụng MS V++6.x và MS Visual Studio.NET (C++) dưới dạng command line theo các bước sau đây :
i)    Chạy file VCVAR32.BAT từ dòng lệnh command line.VCVAR32.BAT là tập tin khởi tạo môi trường Microsoft Studio, đi kèm với trình biên dịch.
Ví dụ :
ii)  Khi môi trường cài đặt đã được thiết lập, chuyển đến thư mục chứa thư viện GDAL,và thực hiện dòng lệnh sau :
C:\GDAL> nmake /f makefile.vc
iii)    Khi quá trình build hoàn thành, sử dụng makefile install các files cần thiết để cho thư viện GDAL. Cần thiết lập lại đường dẫn cho BINDIR,DATADIR trong nmake.opt. Với BINDIR là thư mục chứa các file exe, dll tạo ra khi biên dịch với dòng lệnh dưới đây, DATADIR thư mục chứa các file cần thiết cho GDAL.
C:\GDAL> nmake /f makefile.vc install
b)      Khai báo layer dùng dữ liệu Raster
Để sử dụng ảnh raster như một layer, cần phải khai báo một đối tượng layer trong Mapfile và xác định các tham số kèm theo. Đơn giản nhất chỉ cần khai báo ví dụ như sau:
Ví dụ:                  LAYER
NAME "Dia_hinh"
DATA "DiahinhVN.tif"
TYPE RASTER
STATUS ON
END
Trong đó DATA chỉ ra đường dẫn file ảnh raster,có thể là đường dẫn tuyêt đối hoặc là tương đối theo SHAPEPATH khai báo trong đối tượng Map. Ngoài các tham số như trên một đối tượng layer dạng raster còn có thể có thêm thông tin PROJECTION, METADATA, PROCESSING, MINSCALE, và MAXSCALE.

3.     Kết nối dữ liệu dùng WMS

    Thực hiện kết nối dữ liệu theo chuẩn WMS, MapServer khi này đóng vai trò là một client của Web Map Server. Do là client nên MapServer chỉ cần khai báo layer lấy dữ liệu từ WMS là đủ
a)      Lưu trữ file tạm
Bạn cần phải đặt giá trị cho tham số IMAGEPATH trong đối tượng WEB của mapfile chỉ đến một thư mục hợp lệ và có thể ghi được. MapServer sẽ dùng thư mục này để lưu trữ các file tạm được download từ server ở xa khác. Những file tạm này sẽ được tự động xóa đi bởi MapServer.
Khai báo IMAGEPATH
MAP
...
WEB
IMAGEPATH "/tmp/ms_tmp/"
IMAGEURL...
END
...
END
Để giữ lại các file tạm cho mục đích debug, khai báo :
LAYER
....
DEBUG ON
...
END
b)      Khai báo layer dùng WMS
Layer dùng dữ liệu từ WMS được gọi là WMS layer. WMS layer được truy xuất thông qua kết nối kiểu WMS.
LAYER
NAME "prov_bound"
TYPE RASTER
STATUS ON
CONNECTION "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap?"
CONNECTIONTYPE WMS
METADATA
"wms_srs" "EPSG:42304 EPSG:42101 EPSG:4269 EPSG:4326
EPSG:42304"
"wms_name" "prov_bound"
"wms_server_version" "1.1.0"
"wms_formatlist" "image/gif,image/png,image/jpeg,image/wbmp"
"wms_format" "image/gif"
END
END
Các tham số sau đây là bắt buộc đối với kiểu kết nối WMS.
Ø CONNECTIONTYPE WMS
Ø Tham số CONNECTION : chuỗi URL xác định địa chỉ của Web Map Server.
Ø “wms_onlineresource” (meta data): được dùng khi tham số CONNECTION không có giá trị.
Ø “wms_srs” (metadata): danh sách các mã phép chiếu EPSP được hỗ trợ bởi Web MapServer. Thông tin này có được từ câu truy vấn GetCapabilites (xem phần Các chuẩn WebGIS).
Ø “wms_name” (metadata): danh sách các layer được lấy từ WMS server, giá trị được dùng để đặt LAYERS và tham số QUERY_LAYERS WMS URL
Ø “wms_server_version” : phiên bản của giao thức WMS được hỗ trợ bởi WMS server, và WMS server sẽ dùng cho GetMap.
Ø "wms_format" metadata: Định dạng ảnh dùng để để thực hiện yêu cầu GetMap
Ø "wms_formatlist" : Danh sách các định dạng ảnh sử dụng cho GetMap
Chú ý: Nếu cả “wms_format” và “wms_formatlist” đều được khai báo trong mapfile, thì wms_format sẽ được dùng.

4.       Kết nối dữ liệu dùng WFS

a)      Biên dịch các thư viện hỗ trợ WFS
Để MapServer hỗ trợ WFS, cần biên dịch MapServer với các thư viện sau:
Ø PROJ.4 : thư viện các hệ quy chiếu, phiên bản 4.4.3 trở lên.
Ø GDAL/OGR: thư viện hỗ trợ đọc ghi các dữ liệu vectơ,phiên bản từ 1.1.8 trở lên.
Ø LibCURL: Dùng để giúp MapServer đóng vai trò HTTP client, phiên bản 7.10 trở lên.
b)      Lưu trữ file tạm
Cần chỉ ra thư mục trong IMAGEPATH trong mapfile bởi vì MapServer sử dụng thư mục này để lưu trữ file tạm download từ WFS server
MAP
...
WEB
IMAGEPATH "/tmp/ms_tmp/"
IMAGEURL...
END
...
END
c)      Khai báo layer dùng WFS
Layer dùng cho WFS được khai báo như với các tham số chỉ rõ kết nối tới WFS server sử dụng tham số CONNECTION và tham số METADATA. Các tham số bắt buộc như sau:
Ø  CONNECTIONTYPE WFS
Ø  CONNECTION :chuỗi URL đến WFS server.
LAYER phải chứa đối tượng METADATA với các tham số sau :
Ø  wfs_connectiontimeout (không bắt buộc) : Thời gian tối đa đợi để WFS trả lời (mặc định là 30 giây).
Ø  wfs_service (bắt buộc) : là WFS
Ø  wfs_typename (bắt buộc) : tên layer. Tên layer được xác định khi các client gởi GetCapabilities request lên WFS server
Ø  wfs_version (bắt buộc) : phiên bản của WFS, hiện nay là 1.0.0
Ø  wfs_request_method (không bắt buộc) : để thực hiện GET request cần đặt wfs_request_method là “GET”
...
METADATA
"wfs_filter" "GET"
END
...
Ø  wfs_filter (không bắt buộc) : chuỗi định nghĩa để lọc dữ liệu trong yêu cầu GetFeature của client đối với WFS server.
...
METADATA
"wfs_filter"
“<PropertyIsGreaterThan><PropertyName>POP_RANGE</PropertyName><L
iteral>4
</Literal></PropertyIsGreaterThan>"
END
...

Hãy like nếu bài viết có ích →
Kết bạn với gisgpsrs trên Facebook để nhận bài viết mới nóng hổi

Không có nhận xét nào:

Đăng nhận xét