PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Một phần của tài liệu Xây dựng hệ thống quản lý thông tin trượt lở đất tại tỉnh quảng ngãi trên nền GIS (Trang 48)

7. Bố cục của luận văn

2.2.PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.2.1. Xây dựng sơ đồ quan hệ

Từ các yêu cầu về dữ liệu đƣợc mô tả ở trên, ta xây dựng mô hình quan hệ cơ sở dữ liệu nhƣ sau:

Hình 2.1. Sơ đồ quan hệ

2.2.2. Biểu đồ ca sử dụng

a. Biểu đồ ca sử dụng

Biểu đồ ca sử dụng tổng quát

Biểu đồ ca sử dụng tìm kiếm phân rã

Hình 2.3. Biểu đồ ca sử dụng tìm kiếm phân rã

Biểu đồ ca sử dụng xem thông tin trượt lở đất phân rã

Biểu đồ ca sử dụng tải dữ liệu về thông tin trượt lở đất và thiệt hại phân rã

Hình 2.5. Biểu đồ ca sử dụng Xuất dữ liệu phân rã

Biểu đồ ca sử dụng nhập thông tin thiệt hại phân rã

b. Đặc tả ca sử dụng

Ca sử dụng: Tìm kiếm thông tin trượt lở đất

Bảng 2.8. Đặc tả ca sử dụng tìm kiếm thông tin thiệt hại về trượt lở đất

Tìm kiếm thông tin thiệt hại tổng quát

Tìm kiếm thông tin thiệt hại chi tiết Các tác nhân Ngƣời sử dụng Ngƣời sử dụng Điều kiện trƣớc Ngƣời sử dụng chọn tìm kiếm tổng quát theo năm trên trang giao diện tìm kiếm.

Ngƣời sử dụng chọn tìm kiếm chi tiết theo năm trên trang giao diện tìm kiếm.

Điều kiện sau

Giao diện hiển thị thông tin thiệt hại toàn tỉnh trên bản đồ GIS.

Giao diện hiển thị thông tin thiệt hại tƣơng ứng với trên bản đồ GIS.

Mô tả Ngƣời sử dụng chọn năm để tìm kiếm thông tin thiệt hại tổng quát. Hệ thống sẽ hiển thị các thông tin thiệt hại trên bản đồ GIS.

Ngƣời sử dụng chọn năm và xã để tìm kiếm thông tin thiệt hại chi tiết. Hệ thống sẽ hiển thị các thông tin thiệt hại tƣơng ứng mức xã trên bản đồ GIS.

Ca sử dụng: Xem thông tin thiệt hại do trượt lở đất gây ra Bảng 2.9. Đặc tả ca sử dụng xem thông tin trượt lở đất và thiệt hại

Xem thông tin thiệt hại

tổng quát Xem thông tin thiệt hại chi tiết

Các tác nhân Ngƣời sử dụng Ngƣời sử dụng Điều kiện trƣớc Ngƣời sử dụng chọn xem thông tin thiệt hai tổng quát theo năm trên giao diện tìm kiếm.

Ngƣời sử dụng chọn tìm kiếm chi tiết theo năm trên trang giao diện tìm kiếm.

Xem thông tin thiệt hại

tổng quát Xem thông tin thiệt hại chi tiết

Điều kiện sau (adsbygoogle = window.adsbygoogle || []).push({});

Giao diện hiển thị thông tin thiệt hại toàn tỉnh trên bản đồ GIS

Giao diện hiển thị thông tin thiệt hại tƣơng ứng với xã trên bản đồ GIS

Mô tả Ngƣời sử dụng chọn năm để tìm kiếm thông tin thiệt hại tổng quát. Hệ thống sẽ hiển thị các thông tin thiệt hại trên bản đồ GIS

Ngƣời sử dụng chọn năm và xã để tìm kiếm thông tin thiệt hại chi tiết. Hệ thống sẽ hiển thị các thông tin thiệt hại tƣơng ứng mức xã trên bản đồ GIS.

Ca sử dụng: Xuất dữ liệu báo cáo thông tin trượt lở đất và thiệt hại Bảng 2.10. Đặc tả ca sử dụng tải thông tin trượt lở đất và thiệt hại

Tìm kiếm trƣợt lở đất tổng quát Tìm kiếm trƣợt lở đất chi tiết Các tác nhân Ngƣời sử dụng Ngƣời sử dụng Điều kiện trƣớc

Ngƣời sử dụng xem thông tin thiệt hại tổng quát và click vào nút tải về.

Ngƣời sử dụng xem thông tin thiệt hại chi tiết và click vào nút tải về.

Điều kiện sau

Tải và lƣu báo cáo thông tin trƣợt lở đất và thiệt hại tổng quát dƣới dạng Excel.

Tải và lƣu báo cáo thông tin trƣợt lở đất và thiệt hại chi tiết dƣới dạng Excel.

Mô tả Ngƣời sử dụng click vào nút tải về trên cửa sổ thông tin thiệt hại tổng quát, hệ thống tự động tải và lƣu file báo cáo trƣợt lở đất và thiệt hại tổng quát dƣới dạng Excel.

Ngƣời sử dụng click vào nút tải về trên cửa sổ thông tin thiệt hại chi tiết, hệ thống tự động tải và lƣu file báo cáo trƣợt lở đất và thiệt hại chi tiết dƣới dạng Excel.

Ca sử dụng: Nhập thông tin trượt lở đất và thiệt hại

Bảng 2.2. Đặc tả ca sử dụng nhập thông tin

Nhập thông tin trƣợt lở đất và thiệt hại tổng quát

Nhập thông tin trƣợt lở đất và thiệt hại chi tiết

Các tác nhân Ngƣời sử dụng Ngƣời sử dụng Điều kiện

trƣớc

Ngƣời sử dụng click vào tab nhập dữ liệu.

Ngƣời sử dụng đã nhập thông tin trƣợt lở đất và hiển thị cửa sổ thông tin thiệt hại cho từng địa điểm.

Điều kiện sau

Hiển thị cửa sổ mới để nhập thông tin thiệt hại do trƣợt lở đất gây ra cho từng địa điểm.

Hiển thị message thông báo bạn đã nhập thông tin thiệt hại thành công hoặc không thành công

Mô tả Ngƣời sử dụng click vào tab nhập dữ liệu, hệ thống hiển thị ra form các thuộc tính. Sau đó ngƣời sử dụng chọn xã để nhập thông tin thiên hại về trƣợt lở đất.

Ngƣời sử dụng nhập thông tin số lƣợng thiệt hại ở từng hạng mục cho từng địa điểm xảy ra trƣợt lở đất, rồi click vào button lƣu để lƣu dữ liệu trƣợt lở đất và thiệt hại vào database.

2.2.3. Biểu đồ hoạt động

Biểu đồ hoạt động cho ca sử dụng Xuất dữ liệu trượt lở đất và thiệt hại

Bắt đầu

Tìm kiếm theo năm (adsbygoogle = window.adsbygoogle || []).push({});

(Xem biểu đồ hoạt động tìm kiếm)

Xuất dữ liệu và lƣu dữ liêu dƣới dạng Excel file Hiển thị thông tin trƣợt

lở đất và thiệt hại

Biểu đồ hoạt động cho ca sử dụng tìm kiếm và hiển thị thông tin trượt lở đất

Bắt đầu

Tìm kiếm theo năm

Chọn thời gian

Click vào button tìm kiếm

Kiểm tra thời gian có hợp lệ không

Hiểm thị kết quả trƣợt lở đất tìm kiếm trên bản đồ GIS

Đúng

Nếu kết quả tìm kiếm có giá trị trả về

Hiểm thị thông tin trƣợt lở đất và thiệt hại chi tiết Hiểm thị thông báo

lỗi thời gian Sai

Sai

Biểu đồ hoạt động cho ca sử dụng nhập dữ liệu trượt lở đất và thiệt hại

Bắt đầu

Nhâp dữ liệu

Kiểm tra ngƣời sử dụng chọn ít nhất 1 địa điểm

Kiểm tra thông tin thiệt hại đúng không

Click button lƣu Hiểm thị thông báo chọn

địa điểm xảy ra trƣợt lở đất Sai

Chọn địa điểm xảy ra trƣợt lở đất

Sai

Nhập thông tin trƣợt lở đất Đúng

2.3. KẾT CHƢƠNG

Nội dung chƣơng, mô tả các yêu cầu của hệ thống quản lý thông tin trƣợt lở đất và thiệt hại. Trong chƣơng có nêu ra những yêu cầu về dữ liệu và hệ thống cơ sở dữ liệu, xác định các bảng thuộc tính cần xây dựng và mối quan hệ giữa các bảng với nhau. Ngoài ra, các biểu đồ đặc tả các ca sử dụng cho từng yêu cầu, từng chức năng cụ thể và biểu đồ hoạt động cũng đƣợc miêu tả. Biểu đồ hoạt động mô tả toàn bộ các hoạt động và luồng hoạt động có thể xảy ra trong hệ thống. Dựa trên những biểu đồ, ngƣời xây dựng hệ thống sẽ có một cái nhìn đầy đủ, đúng đắn và chính xác về hệ thống quản lý thông tin trƣợt lở đất mà đang muốn hƣớng tới xây dựng.

CHƢƠNG 3

CÀI ĐẶT VÀ THỬ NGHIỆM CHƢƠNG TRÌNH

3.1. CÀI ĐẶT CHƢƠNG TRÌNH (adsbygoogle = window.adsbygoogle || []).push({});

3.1.1. Các bƣớc thực hiện cài đặt chƣơng trình

Do hiện tại hệ thống sử dụng trực tiếp nguồn dữ liệu từ một máy chủ cố định (Data server), nên hệ thống sẽ bỏ qua Data Exchange center (Cleaning House). Vậy nên GIS server sẽ truy vấn và lấy dữ liệu trực tiếp từ Data server thay vì phải qua trung gian Data Exchange center. Sau đây là các bƣớc xử lý để xây dựng chƣơng trình.

Hình 3.1. Các bước thực hiện xây dựng chương trình[10]

Phần Presentation tier (Client side): Sử dụng Spring MVC để xây dựng website, ngƣời dùng sẽ tƣơng tác với giao diện web để gửi yêu cầu thông qua các phƣơng thức HTTP request, response đến Web server.

Phần Logical tier (Server side): Web server (Tomcat 7) và GIS server (GeoServer).

Phần Data tier (Database): Sử dụng PostgreSQL và POSTGIS. Các bƣớc xử lý:

- Client gởi yêu cầu ngƣời dùng thông qua giao thức HTTP đến Web Server.

- Web Server nhận yêu cầu của ngƣời dùng gởi đến từ phía client, xử lý và chuyển tiếp yêu cầu đến ứng dụng trên GIS server.

- GIS server (Geoserver) nhận yêu cầu dữ liệu và tìm kiếm vị trí của những dữ liệu này sau đó gởi yêu cầu dữ liệu đến server chứa dữ liệu (GIS database server) tƣơng ứng cần tìm.

- GIS database server (PostgreSQL) tiến hành truy vấn lấy ra dữ liệu cần thiết và trả dữ liệu về cho GIS server.

- GIS server sắp xếp dữ liệu lại theo logic của yêu cầu dữ liệu, sau đó đƣa chúng đến các hàm cần sử dụng, xử lý chúng tại đây và kết quả đƣợc trả về cho Web Server.

- Web Server nhận về kết quả xử lý, thêm vào các ngữ cảnh web để có thể hiển thị đƣợc trên trình duyệt và cuối cùng gởi trả kết quả về cho trình duyệt dƣới dạng các trang web.

3.1.2. Qui trình hiển thị bản đồ trong Geoserver lên giao diện WebGis

a. Các thành phần dữ liệu trong quy trình hiển thị bản đồ lên GeoServer

Workspaces

Workspace là một không gian làm việc, giống nhƣ một thƣ mục chứa các nhóm lớp có tính chất giống nhau.

Stores

Nơi chứa nguồn dữ liệu GIS để hiển thị lên bản đồ.GeoServer hỗ trợ chúng ta khá nhiều loại data bao gồm cả các nguồn dữ liệu Vector và Raster.

Layers

Lớp dữ liệu hiển thị trên bản đồ. Khi chúng ta nhập các thông số cho store của chúng ta thành công GeoServer sẽ tự động load các layer và đƣa chúng ta sang trang layer, chúng ta có thể chọn public để public luôn layer cần thiết. Ở đây chúng ta cần khai báo các thông số hệ tọa độ trong GeoServer cho giống với hệ tọa độ trong cơ sở dữ liệu, kiểu dữ liệu, các thuộc tính đƣợc hiển thị lên bản đồ...

Layer Groups

Chúng ta có thể tạo các group để nhóm các layers lại với nhau để hiển thị cùng nhau trên 1 bản đồ. Layer Groups cho phép chúng ta chồng các layer lên nhau theo thứ tự đƣợc sắp xếp trên cùng một bản đồ.

Layer Preview

Chúng ta có thể xem qua các bản đồ từ các layers và các layer groups hiển thị trên GeoServer trong mục layer preview này.

Styles

Về cơ bản, bản chất dữ liệu không gian không phải là thành phần trực quan, sinh động. Để nhìn thấy dữ liệu thì nó cần phải đƣợc định dạng kiểu dáng (Style). Điều này có nghĩa là phải chỉ định màu sắc, độ rộng và các thuộc tính trực quan khác cho nó. Trong GeoServer, việc định kiểu này đƣợc thực hiện bằng cách sử dụng một ngôn ngữ đƣợc gọi là Styled Layer Descriptor (SLD). SLD là một ngôn ngữ dựa trên XML. [11]

Dữ liệu mà GeoServer có thể hỗ trợ thƣờng là các hình dạng: Điểm (Points), đƣờng (Lines) và đa giác (Polygons). Đƣờng là dạng đơn giản nhất, chúng chỉ có một đƣờng để định dạng kiểu (Thuộc tính đƣợc biết nhƣ “Stroke”). Đa giác, có một đƣờng và một vùng bên trong (Nhƣ thuộc tính “Fill”), cả hai có thể đƣợc định dạng khác nhau. Điểm, có cả đƣờng viền và vùng bên trong. Để lấp đầy vùng thì màu sắc có thể đƣợc quy định; cho nét, màu và độ dày cũng có thể đƣợc chỉ định.

Dƣới đây là một ví dụ đơn giản minh họa cho việc định dạng kiểu dáng cho một lớp dữ liệu có kiểu Line:

<?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <NamedLayer> <Name>default_line</Name> <UserStyle> <Title>Default Line</Title>

<Abstract>A sample style that draws a line</Abstract> <FeatureTypeStyle> (adsbygoogle = window.adsbygoogle || []).push({});

<Rule>

<Name>rule1</Name> <Title>Blue Line</Title>

<Abstract>A solid blue line with a 1 pixel width</Abstract> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#0000FF</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle> </UserStyle> </NamedLayer> </StyledLayerDescriptor>

Trong tài liệu SLD trên cần quan tâm các thẻ sau:

Thẻ “PointSymbolizer” đƣợc sử dụng để bắt đầu định kiểu dáng cho dữ liệu dạng điểm.

Thẻ “WellKnowName” cho biết việc sử dụng các hình dạng đƣợc hỗ trợ sẵn để định kiểu cho dữ liệu, trong trƣờng hợp này là hình sao (star) sẽ đại diện cho một điểm. Ngoài ra, còn có nhiều hình dạng khác nhƣ hình vuông (square), hình tròn (circle), hình tam giác (triangle),…

Thẻ “Fill” và “Size” dùng để tô màu và chỉ định kích thƣớc cho điểm. Bộ lọc trongStyles cho phép xác định những đối tƣợng thỏa mãn một tập các điều kiện đƣợc chỉ định trƣớc, điều này làm tăng tính linh động trong việc định dạng kiểu dáng cho dữ liệu không gian. Một ví dụ sử dụng bộ lọc trong tài liệu sau dùng để định dạng màu nền và độ rộng của những đƣờng đi có thuộc tính loại đƣờng (loai_duong)là tỉnh lộ (tinh lo).

<FeatureTypeStyle> <Rule> <Title>Tinh lo</Title> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>loai_duong</ogc:PropertyName> <ogc:Literal>tinh lo</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <LineSymbolizer> <Stroke> <CssParameter name="stroke">#FFFA51</CssParameter> <CssParameter name="stroke-width">13</CssParameter> </Stroke> </LineSymbolizer> </Rule> </FeatureTypeStyle>

b. Cách tổ chức các lớp dữ liệu (layers) chồng lớp trên Geoserver Lớp dữ liệu “thiethaichitiet” Lớp dữ liệu “diaphanxa” Lớp dữ liệu “diaphanhuyen” Lớp dữ liệu “thiethaitongquat” Chồng lớp Chồng lớp Chồng lớp

Hình 3.3. Cách tổ chức các lớp dữ liệu chồng lớp trên Geoserver Bảng 3.1. Mô tả các lớp dữ liệu (layers) trên Geoserver

Tên layer Mô tả Kiểu Hệ qui

chiếu

diaphantinh Lớp hiển thị bản đồ tỉnh. Dữ liệu cho layer này đƣợc xuất ra từ dữ liệu của bảng "diaphantinh" trong cơ sở dữ liệu.

Polygon EPSG:4326

diaphanhuyen Lớp hiển thị bản đồ tỉnh phân vùng theo huyện. Dữ liệu cho layer này đƣợc xuất ra từ dữ liệu của bảng "diaphanhuyen" trong cơ sở dữ liệu.

Polygon EPSG:4326

diaphanxa Lớp hiển thị bản đồ huyện phân vùng theo xã. Dữ liệu cho layer này đƣợc xuất ra từ dữ liệu của bảng "diaphanhxa" trong cơ sở dữ liệu.

Tên layer Mô tả Kiểu Hệ qui chiếu

thiethaichitiet Lớp hiển thị địa điểm thiệt hại chi tiết xảy ra. Dữ liệu cho layer này đƣợc xuất bằng cách tham chiếu các bảng trong cơ sở dữ liệu.

Point EPSG:4326

thiethaitongquat Lớp hiển thị địa điểm thiệt hại

tổng quát xảy ra. Dữ liệu cho layer này đƣợc xuất bằng cách tham chiếu các bảng trong cơ sở dữ liệu.

Point EPSG:4326

c. Kết quả hiển thị các lớp dữ liệu trên Geoserver

Sử dụng công cụ GeoServer để hiện thị các lớp (Layer) của bản đồ từng địa phận huyện, xã trên nền GIS.

Hình 3.4. Kết quả hiển thị layer "diaphanhuyen"

d. Hiển thị bản đồ từ các lớp dữ liệu trong GEOSERVER

Các khái niệm cơ bản trong OpenLayers 3

- Lớp ol.Map: Là thành phần cốt lõi của OpenLayers 3 là bản đồ. Các bản đồ trong OpenLayers đƣợc đại diện bởi lớp Map, là nơi để lƣu giữ các thông tin về hệ quy chiếu, đơn vị, vùng bao (box) … của bản đồ. Mỗi đối tƣợng bản đồ đại diện bản đồ riêng lẻ trên trang web. Các thuộc tính của Map có thể đƣợc định nghĩa tại thời điểm khởi tạo Map hoặc sử dụng các phƣơng thức setter. Nếu ta thiết lập thuộc tính target là “map”, thì tồn tại một thành phần div với id là “map” là nơi để chứa bản đồ này trong trang html.

<div id="map" style="width: 100%, height: 400px"> </div> <script> (adsbygoogle = window.adsbygoogle || []).push({});

var map = new ol.Map({target: 'map'}); </script>

-Lớp ol.View: Lớp này chứa các thuộc tính để định dạng bản đồ nhƣ chọn điểm giữa bản đồ, mức độ zoom...

map.setView(new ol.View({ center: [0, 0],

zoom: 2 }));

-Lớp ol.source.Source

Để có đƣợc dữ liệu từ xa cho một lớp, OpenLayers 3 sử dụng lớp con ol.source.Source. Có các gói dịch vụ bản đồ miễn phí và thƣơng mại nhƣ OpenStreetMap hoặc Bing, cho nguồn OGC nhƣ WMS hoặc WMTS, và cho dữ liệu vector trong các định dạng nhƣ GeoJSON hoặc KML.

var osmSource = new ol.source.OSM();

Lớp ol.layer.Layer: Một Layer là một đại diện trực quan của dữ liệu từ một nguồn nào đó. Bên trong bản đồ, dữ liệu đƣợc hiển thị thông qua các „Layer‟. Một „Layer‟ là một nguồn dữ liệu, nó cho biết OpenLayers nên yêu

cầu và hiển thị dữ liệu nhƣ thế nào. Trong một „Map‟ có thể chứa một hoặc

Một phần của tài liệu Xây dựng hệ thống quản lý thông tin trượt lở đất tại tỉnh quảng ngãi trên nền GIS (Trang 48)