3.5 .Phân tích các chức năng của hệ thống
3.5.3 .Đặc tả danh sách các Use Case
3.5.3.4. Use case 04: Tương tác bản đồ
a) Use case 04.01: Thay đổi loại bản đồ nền Google Map
Tóm tắt:
o Use case này cho phép người sử dụng có thể thay đổi loại bản đồ nền hiển thị của Google Map.
Input:
o Bản đồ nền Google Map.
o Chọn loại bản đồ nền từ combo box
Output:
o Thay đổi bản đồ nền Google Map sang dạng ảnh chụp vệ tinh hoặc dạng bản đồ địa hình giao thơng hoặc bản đồ styled map do người phát triển tùy biến các đối tượng trên Google Map.
Giải thuật:
o Với bản đồ vệ tinh, địa hình thì chỉ đặt thuộc tính mapTypeId của đối tượng Google Map sang dạng HYBRID hoặc TERRAIN.
o Với bản đồ styled map thì có thể tùy biến các đối tượng: biên giới quốc gia, nước, tỉnh thành, đường giao thông...Cho phép thay đổi mầu sắc, bật tắt các đối tượng này trên bản đồ Google Map. Ở đây, bản đồ Google Map được chuyển sang mầu đen, chỉ hiển thị tên và biên giới quốc gia, mục đích là tăng tính nổi bật, trực quan khi chồng xếp lớp ảnh MODIS lên.
b) Use case 04.02: Di chuyển bản đồ nền
Tóm tắt:
o Use case này cho phép người sử dụng dùng chuột trái để di chuyển bản đồ sang góc nhìn mong muốn.
o Bản đồ nền hiện tại.
o Người dùng chọn công cụ Pan
Output:
o Góc nhìn bản đồ dịch chuyển sang trái, phải, lên trên, xuống dưới tùy theo ý muốn của người dùng.
Giải thuật:
o Sử dụng tính năng Pan của thư viện Drawing Tools để người dùng có thể nhấn chuột trái và di chuyển bản đồ Google Map.
c) Use case 04.03: Điều chỉnh góc nhìn bản đồ Google Map
Tóm tắt:
o Use case này gồm 4 công cụ là: mở rộng góc nhìn bản đồ tồn thế giới (extent), phóng to góc nhìn (zoom-in), thu nhỏ góc nhìn (zoom-out), thay đổi về giá trị mặc định (default) góc nhìn bản đồ Google Map.
Input:
o Bản đồ nền hiện tại.
o Người dùng chọn 1 trong 4 công cụ là:
Góc nhìn thế giới
Phóng to góc nhìn
Thu nhỏ góc nhìn
Thay đổi góc nhìn về mặc định
Output:
o Góc nhìn bản đồ được thu nhỏ theo thang zoom của Google Map là 2 đủ để nhìn tồn cảnh bản đồ thế giới.
o Phóng to (tăng giá trị zoom), thu nhỏ (giảm giá trị zoom) bản đồ Google Map tại vị trí mong muốn.
o Thay đổi mức độ zoom và vị trí center của bản đồ Google Map về vị trí mặc định (zoom = 5, vị trí gần với Việt Nam). Với bộ dữ liệu hiện có thì vị trí này có dữ liệu ảnh viễn thám MODIS quét qua nhiều nhất nên được chọn làm tâm của bản đồ.
Giải thuật:
o Đặt giá trị phù hợp cho thuộc tính zoom của đối tượng Google Map.
o Với tính năng góc nhìn thế giới thì cần đặt thuộc tính center của Google Map về gốc tọa độ dạng (latitude, longtitude) = (0, 0).
o Với tính năng thay đổi góc nhìn về mặc định thì đặt thuộc tính có dạng như sau center = (25.4760085, 103.2880212) – tọa độ trung tâm vùng có nhiều ảnh.
d) Use case 04.04: Đo đạc khoảng cách, diện tích trên bản đồ
Tóm tắt:
o Use case này cho phép người sử dụng tính khoảng cách giữa các điểm thuộc Polyline (các đoạn thẳng nối tiếp nhau) trên Google Map (đơn vị là km).
o Hoặc người sử dụng tính diện tích giữa các điểm thuộc Polygon (đa giác từ 3 cạnh trở lên) trên Google Map (đơn vị là km2 ).
Input:
o Bản đồ nền hiện tại.
o Người dùng chọn cơng cụ tính khoảng cách (line)
o Hoặc người dùng chọn cơng cụ tính diện tích (area)
Output:
o Người dùng vẽ được 1 Polyline hoặc 1 Polygon lên bản đồ Google Map.
o 1 bảng Infowindow thể hiện tổng khoảng cách (hoặc diện tích) và tọa độ các điểm thuộc Polyline (hoặc Polygon) mà người dùng vừa vẽ.
Giải thuật:
o Sử dụng tính năng Polyline (hoặc Polygon) của thư viện Drawing Tools để cho phép người dùng vẽ các đoạn thẳng nối tiếp nhau trên bản đồ Google Map. Các đoạn thẳng này chưa là đa giác Polygon nếu điểm đầu và điểm cuối chưa trùng nhau. Người dùng kết thúc quá trình vẽ khi nối điểm đầu và điểm cuối với nhau.
o Bắt sự kiện khi người dùng ấn vào nút cuối của Polyline (hoặc Polygon) để dừng quá trình vẽ và duyệt tất cả tọa độ của các điểm nằm trên chúng. Sau đó, sử dụng hàm computeLength() (hoặc computeArea()) của Google Map để tính tổng
khoảng cách (hoặc diện tích) giữa các điểm này.
e) Use case 04.05: Xóa các đối tượng hiển thị trên bản đồ
Tóm tắt:
o Use case này cho phép xóa các đối tượng Polyline, Polygon, Infowindow, Marker đang hiển thị trên bản đồ. Các đối tượng này được sử dụng để đo đạc diện tích, tạo vùng chọn địa lý để tìm kiếm, thống kê. Sau khi thực hiện các tính năng trên, người dùng có thể chọn chức năng này để bỏ các đối tượng này để bản đồ không bị che lấp bởi các đối tượng cũ không cần sử dụng nữa.
Input:
o Bản đồ nền hiện tại.
o Các đối tượng Polyline, Polygon, Infowindow, Marker đang hiển thị trên bản đồ (chỉ áp dụng nếu các đối tượng này không thuộc đa giác vùng đã chọn để tìm kiếm ảnh viễn thám).
Output:
o Người dùng xóa tất cả các đối tượng nằm ngồi đa giác vùng đã chọn để tìm kiếm ảnh viễn thám.
o Bản đồ khơng cịn bị các đối tượng khơng cịn mục đích sử dụng che lấp.
Giải thuật:
o Kiểm tra xem có đang vẽ đối tượng nào nằm ngồi vùng đã chọn khơng. Nếu có thì xóa các đối tượng này đi bằng cách là gán = null. Các đối tượng này sẽ không xuất hiện trên bản đồ Google Map nữa.
f) Use case 04.06: Vẽ vùng chọn để tìm kiếm, thống kê
Tóm tắt:
o Use case này cho phép người sử dụng vẽ 1 đối tượng dạng đa giác Polygon (hoặc Rectangle - trường hợp đặc biệt của Polygon) để tạo 1 vùng chọn, mục đích để truy vấn mối liên hệ khơng gian với ảnh viễn thám trong phần tìm kiếm. Đặc biệt nếu đã vẽ 1 vùng chọn để tìm kiếm ảnh viễn thám, đã overlay 1 ảnh viễn thám lên bản đồ Google Map thì tính năng này sẽ là vẽ 1 vùng chọn mới và thống kê dữ liệu AOT thuộc vùng chọn đó.
o Ngồi ra, người sử dụng có thể vẽ 1 đối tượng Polyline (chỉ cho phép vẽ 1 đoạn thẳng) để có thể thống kê giá trị AOT của các điểm nằm trên các ảnh bị đường Polyline cắt trong phần phân tích, thống kê.
Input:
o Bản đồ nền hiện tại.
o Người sử dụng vẽ vùng chọn để tìm kiếm:
Chức năng vẽ vùng chọn đa giác
Chức năng vẽ vùng chọn hình chữ nhật
o Hoặc người sử dụng vẽ Polyline để thống kê dữ liệu AOT
Output:
o Chức năng vẽ vùng chọn để tìm kiếm: người dùng vẽ được đa giác Polygon (hoặc Rectangle) lên bản đồ Google Map. Ngoài ra, tọa độ các điểm thuộc đa giác được thể hiện trên 1 textarea (HTML form control) mục đích để là dữ liệu đầu vào cho chức năng tìm kiếm. Nếu người dùng thay đổi (thêm, dịch chuyển) tọa độ của điểm nào thuộc đa giác này thì tọa độ đó cũng thay đổi trên textarea.
o Chức năng vẽ vùng chọn mới để thống kê: người dùng vẽ được đa giác lên bản đồ Google Map (đã có overlay 1 ảnh viễn thám). Sau khi vẽ xong thì có 1 Infowindow thống kê dữ liệu AOT của ảnh viễn thám đang overlay được hiển thị.
o Chức năng vẽ đoạn thẳng để thống kê: người dùng vẽ được đoạn Polyline lên bản đồ Google Map. Tọa độ 2 điểm thuộc đoạn thẳng sẽ là đầu vào để thống kê dữ liệu AOT ở chức năng phân tích, thống kê.
Giải thuật:
o Sử dụng các tính năng vẽ Polygon, Rectangle, Polyline của thư viện Drawing Tools để vẽ các đối tượng này lên Google Map. Khác với tính năng đo lường (khoảng cách, diện tích), tính năng này lưu lại tọa độ các điểm vào textarea để là đầu vào cho các chức năng tìm kiếm hoặc thống kê.
g) Use case 04.07: Overlay shapefile 1 quốc gia ứng với 1 vùng chọn tìm kiếm
Tóm tắt:
o Use case này cho phép vẽ vùng chọn giống với vẽ vùng chọn dạng đa giác để tìm kiếm. Tuy nhiên, bởi vì quốc gia được tạo nên bởi nhiều đa giác (Multipolygon) và số các điểm thuộc đa giác cũng rất lớn nên phần hiển thị này lấy dữ liệu shapefile từ Fusion Table API và hiển thị trên Google Map.
Input:
o Bản đồ nền hiện tại.
o Chọn chức năng overlay shapefile quốc gia
Output:
o Nếu người dùng chọn “view all”: các đa giác thuộc tất cả quốc gia sẽ overlay trên Google Map với mầu sắc tùy theo số dân của quốc gia đó. Một bảng legend (thơng tin) với các mầu thể hiện khoảng số dân sẽ được hiển thị.
o Nếu người dùng chọn “hide all”: các đa giác thuộc tất cả quốc gia sẽ bị xóa trên Google Map.
o Nếu người dùng chọn 1 quốc gia: các đa giác thuộc quốc gia đó sẽ được overlay trên Google Map và là đầu vào cho chức năng tìm kiếm ảnh viễn thám (ở đây là 1 ảnh có thể giao với nhiều đa giác thuộc quốc gia).
Giải thuật:
o Sử dụng Google Fusion API để viết 1 câu truy vấn tới bảng dữ liệu country, trong truy vấn này dựa trên giá trị của trường population để hiển thị mầu sắc phù
hợp cho từng quốc gia. Tạo ra 1 bảng legend dạng thẻ DIV với các thông tin về mầu, số dân và đặt nó vào vị trí góc dưới phải trên Google Map.
h) Use case 04.08: In bản đồ Google Map tại góc nhìn hiện tại
Tóm tắt:
o Use case này cho phép người sử dụng chọn in phần bản đồ với ảnh viễn thám đang được overlay tại góc nhìn hiện tại, làm tài liệu lưu trữ.
Input:
o Bản đồ nền hiện tại (có thể có ảnh viễn thám đang overlay).
o Người sử dụng chọn chức năng in bản đồ
Output:
o Người sử dụng có thể lưu ảnh chụp bản đồ tại góc nhìn hiện tại ra máy in, file PDF tùy theo cấu hình của trình duyệt và phần mềm in ấn.
Giải thuật:
o Ở đây người sử dụng chỉ muốn in phần HTML thể hiện bản đồ nền Google Map (ảnh viễn thám đang overlay nếu có) khơng phải là chụp ảnh tồn bộ trang Web. Vì vậy, để thực hiện chức năng này thì lấy tồn bộ phần HTML chứa thơng tin các ảnh Google Map, ảnh viễn thám và đưa sang 1 cửa sổ trình duyệt mới và gọi hàm Javascript print() để thực hiện chức năng in ấn của trình duyệt. Như vậy sẽ
khơng có các thơng tin thừa mà người dùng không muốn xuất hiện trên ảnh và phải xử lý ảnh để bỏ các thông tin này.
i) Use case 04.09: Hiển thị thông tin tọa độ Google Map khi di chuyển chuột
Tóm tắt:
o Use case này cho phép người dùng nhận biết được vị trí con trỏ chuột trên Google Map ở 3 dạng tọa độ: (latitude, longtitude) - thập phân, (latitude, longtitude) - độ phút giây, (x, y) - thể hiện vị trí mảnh bản đồ của Google Map.
Input:
o Bản đồ nền hiện tại.
o Người dùng di chuyển chuột trên bản đồ Google Map.
Output:
o Hệ thống hiển thị 3 loại tọa độ. Ví dụ:
Lat, Lon Decimal: 2.789424777005989, 134.09912109375
Lat, Lon Degree: 2° 47' 21'' N, 134° 5' 56'' E
X, Y: 223.359375, 126.015625
Giải thuật:
o Bắt sự kiện khi di chuyển chuột trên bản đồ Google Map, lấy được 2 thông tin về tọa độ latitude và longtitude dạng thập phân. Sử dụng hàm Javascript với công thức chuyển từ (latitude, longtitude) thập phân → (latitude, longtitude) độ phút giây. Ví dụ latitude = 121.135, công thức chuyển đổi là:
Degree (độ) = phần nguyên = 121
Minute (phút) = phần thập phân latitude * 60 = 0.135 * 60 = 8.1 ≈ 8
o Kết quả là: latitude = 121.135 (decimal), hoặc latitude = 121°8'6" (degree)
o Với tọa độ (x, y) thì gọi hàm Google Map API convertDecDeg() với đầu vào là (latitude, longtitude) thập phân sẽ cho ra kết quả là 1 điểm dạng x, y thể hiện vị trí mảnh bản đồ Google Map.