Ả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