PHẦN A - LÝ THUYẾT VỀ LOCATION BASED SERVICE
Chương 5 XÁC ĐỊNH YÊU CẦU
5.2 Sơ đồ Use-Case
5.2.4 Mô tả dữ liệu cho hệ thống LBS
a. Lược đồ CSDL
b. Mô tả chi tiết
Bảng dữ liệu Place
Bảng dữ liệu Place nhằm mô tả chi tiết về một địa điểm nào đó. Dựa vào đây ta có thể xác định được thông tin của một địa điểm trên bản đồ.
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính Là mã số để phân biệt với các
địa điểm khác
2 Type Int Khóa ngoại Dùng để mô tả loại địa điểm
3 FullName Nvarchar(255) Mô tả chi tiết thông tin về địa điểm.
4 Address Nvarchar(255) Mô tả địa chỉ của địa điểm
5 Contact Nvarchar(MAX) Thông tin để bổ sung cho địa
điểm. Field này có ý nghĩa về mặt thông tin, không có ý nghĩa về mặt tìm kiếm
6 xLocation Float Mô tả vĩ độ của địa điểm.
Field có ý nghĩa về mặt tìm kiếm, giúp chúng ta xác định được địa điểm khi biết được tọa độ
7 yLocation Float Mô tả tung độ của địa điểm.
kiếm, giúp chúng ta xác định được địa điểm khi biết được tọa độ
8 Placeinfo int Thông tin bổ sung thêm cho
địa điểm. Ví dụ: địa chỉ liên lạc, hình ảnh, giới thiệu…
9 Keyword Nvarchar(255) Field lưu giữ những từ khóa
của địa điểm đó, có ý nghĩa về mặt tìm kiếm. Dựa vào keyword này để xác định vị trí của một địa điểm
Để minh họa rừ ý nghĩa của bảng dữ liệu Place chỳng ta xột hai vấn đề như sau:
- Làm thế nào để xác định thông tin của địa điểm có tọa độ (21.01388 105.8133):
Khi biết được tọa độ của vị trí tức là ta có dữ liệu của hai field xLocation, yLocation.
Dựa vào đây ta truy vấn ra các thông tin cần thiết của một địa chỉ.
- Làm thế nào xác định được thông tin của địa điểm khi biết tên địa điểm là ATM: Khi biết tên địa điêm, ta dựa vào field keyword để thực hiện tìm kiếm. Dựa vào thông tin vị trí hiện tại của người dùng, kết hợp với dữ liệu từ hai field xLocation, yLocation từ đó ta truy vấn ra tập tất cả những địa diểm có tên là ATM
Bảng dữ liệu PlaceInfo
Bảng dữ liệu này mô tả thông tin thêm cho một địa điểm nào đó trong bảng dữ liệu Place. Các dữ liệu bổ sung này có ích đối với người xem bản đồ, cần biết về hình ảnh, địa chỉ liên lạc.
Bảng dữ liệu PlaceType
Bảng dữ liệu này mô tả các loại địa điểm của một điểm như là: ATM, bưu điện, nhà hàng. Để dựa vào đây và kết hợp với bảng dữ liệu Place trên ta tìm kiếm các loại địa điểm xung quanh vị trí đang đứng
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính Mã số của một loại địa điêm
2 Description Nvarchar(MAX) Mô tả tên loại địa điểm
3 Picture Nvarchar(255) Đường dẫn hình ảnh đại diện
Để minh họa rừ hơn về ý nghĩa của bảng dữ liệu PlaceType và cũng để giải thớch tại sao lại xây dựng bảng dữ liệu này, chúng ta xét ví dụ sau:
Tìm kiếm những nhà hàng có xung quanh tôi? : Như vậy chúng ta có thông tin là loại địa điểm là Nhà Hàng. Dựa vào field Description trên bảng dữ liệu PlaceType chúng ta suy ra được mã số của loại địa điểm này. Dựa vào mã số của loại địa điểm cùng kết hợp với field Type trong bảng dữ liệu Place trên, chúng ta lấy ra được những địa điểm thuộc loại “Nhà Hàng”. Sau đó kết hợp giữa vị trí của người dùng và vị trí của địa điểm ta suy ra đó có phải là địa điểm xung quanh hay không. Từ đó xuất ra tập hợp các địa điểm có kiểu là Nhà Hàng xung quanh vị trí người dùng.
Bảng dữ liệu Street
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính
2 FullName Nvarchar(255) Tên đường
3 Strartnode Int Khóa ngoại Tọa độ điểm bắt đầu con đường
4 Endnode Int Khóa ngoại Tọa độ cuối con đường
5 Nodecount Int Số lượng các đoạn đường
trong con đường
6 Tags Nvarchar(255) Thông tin thêm, có ý nhĩa trong tìm kiếm
7 Twoway Int Để cho biết đây có phải là con
đường hai chiều hay không?
8 Info Nvarchar(255) Thông tin đường
9 State Int Tình trạng đường
10 Keyword Nvarchar(255) Là từ khóa để phục vụ cho tìm
kiếm
Bảng dữ liệu Street cung cấp cho chúng ta dữ liệu các con đường, nhằm phục vụ cho quá trình tìm kiếm tên đường, địa điểm. Bảng này kết hợp với bảng dữ liệu NodeInfo sẽ cho chúng ta tọa độ chính xác của con đường.
Ví dụ: để tìm con đường Nguyen Trai, Đơn giản chi là so sánh với field Keyword nếu keyword có chứa từ Nguyễn Trãi thì lấy thông tin về con đường đó ra.
Bảng dữ liệu NodeInfo
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính
2 xLocation Float Tọa độ longitude.
3 yLocation Float Tọa độ latitude.
Bảng này mô tả tọa độ của các node trên con đường. Bảng này có ý nghĩa khi cùng kết hợp với bảng dữ liệu StreetSegment
Bảng dữ liệu StreetSegment
Đây là bảng dữ liệu quan trọng mô tả từng đoạn đường trong con đường, nhằm mục đích cho tìm kiếm đường đi ngắn nhất giữa hai điểm cho trước.
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 StartPoint Int Khóa ngoại Là điểm bắt đầu của đoạn đường
2 IDStreet Int Khóa ngoại Con đường mà chứa đoạn đường này
3 Order int Số thứ tự của đoạn đường
4 EndPoint Int Điểm kết thúc của đoạn
đường
Bảng dữ liệu sẽ kết hợp với bảng dữ liệu NodeInfo để lấy tọa độ chính xác của điểm đầu điểm cuối.
Để minh họa ý nghĩ của ba bảng dữ liệu NodeInfo, StreetSegment, Street. Chúng ta xét một ví dụ tìm đường đi ngắn nhất như sau:
Tìm đường ngắn nhất từ một điểm đến một điểm? Khi chúng ta có được tọa độ của một điểm thì chúng ta dễ dàng suy ra được StartPoint hoặc EndPoint trên đoạn đường dựa vào sự liên hệ giữa NodeInfo và StreetSegment. Sau khi tìm được StartPoint hoặc EndPoint chúng ta tìm các StartPoint, EndPoint khác có liên hệ với StartPoint và EndPoint vừa tìm. Sau đó sử dụng thuật toán để chọn ra Segment cần đi tiếp theo. Sau đó kết hợp các segment vừa tìm được lại thành đường đi ngắn nhất.