ERD của cơ sở dữ liệu bản đồ

Một phần của tài liệu Xây dựng hệ thống cảnh báo tình trạng giao thông trên nền tảng web (Trang 37 - 39)

10 Phụ lục của đề tài

5.1 ERD của cơ sở dữ liệu bản đồ

• Nodes: Biểu diễn một điểm là một vị trí cụ thể trên bản đồ. Mỗi Node

node trên bản đồ (location). Trường location được lưu dưới dạng GeoJSON Objects [54] và có sử dụng chỉ mục2dsphere [55] để tăng tốc độ truy vấn theo không gian địa lý.

• Streets: Biểu diễn một tuyến đường trong thực tế. Nó là tập hợp của nhiều segment liên tiếp nhau. Bao gồm các trường sau:

– ID: Định danh của các con đường.

– name: Tên đường.

– max_velocity: Tốc độ tối đa cho phép trên con đường.

– type: Phân loại đường thực tế trên bản đồ.

Dữ liệu về các đoạn đường như tên đường và loại đường được lấy dữ liệu từ

OpenStreetMap(OSM) [34]. Hệ thống hiện tại tập trung vào các loại đường

chính như sau: motorway, trunk, primary, secondary, tertiary, unclassified*, residential, các đường phụ (hay còn gọi là đường liên kết) như:motorway_link,

trunk_link, primary_link, secondary_link, tertiary_link và một số loại đường

đặc biệt khác. Chi tiết các loại đường được sử dụng trong bản đồ OSM được liệt kê ở đây [56].

*: unclassified thực chất là một cách định danh loại đường của OSM chứ

không phải là do con đường này chưa được phân loại.

• Segments: Đây là thực thể chính lưu trữ thông tin của một đoạn thẳng là một phần của một đoạn đường trong bản đồ, được xác định bằng một điểm đầu và một điểm cuối. Gần như mọi chức năng của hệ thống liên quan đến bản đồ như hiển thị tình trạng giao thông hay tìm đường đều được hiện thực

dựa trên các segment. Mỗi segment bao gồm các thông tin sau:

– ID: Định danh của segment.

– length: chiều dài của segment (đơn vị m). Giá trị được tính toán dựa trên tọa độ địa lý <latitude, longitude> của điểm đầu và điểm cuối tạo

nên segment. Độ dài của segment được phục vụ chính cho việc tính toán

chi phí trong việc tìm đường và một số chức năng khác ví dụ như tính

khoảng cách mà một người dùng sử dụng ứng dụng đi được. Chiều dài

trung bình của một segment trong hệ thống được chúng tôi khảo sát có giá trị là 42m.

– start_node: ID điểm đầu của segment.

– end_node: ID điểm cuối của segment.

– street: ID của đoạn đường mà segment này thuộc về.

Tuy nhiên trong thực tế tần suất truy vấn cácsegment của hệ thống rất nhiều và đặc biệt là truy vấn theo không giao địa lý nên ngoài các trường kể trên cần phải tổ chức lưu thêm dữ liệu về tọa độ địa lý của các segment dưới định

dạng GeoJSON Objects [54] củaMongoDB dạng đường thẳng và có đánh chỉ

mục 2dsphere (trường polyline). Đoạn mô tả 5.1 tiếp theo đây là một ví dụ

về một document của mộtsegment được lưu trong collection Segments của

1 { 2 " _id ": 5 8 2 3 5, 3 " polyline ":{ 4 " type ": " L i n e S t r i n g ", 5 " c o o r d i n a t e s ": [ 6 [1 0 6.6 5 7 7 3 7 4,1 0.7 7 2 0 1 5 7], 7 [1 0 6.6 5 7 5 9 8 8,1 0.7 7 2 5 1 0 4] 8 ] 9 }, 10 " length ": 5 7, 11 " end_ node ": 5 2 4 2 1 4 8 7 7 3, 12 " s t a r t _ n o d e ": 2 3 0 2 0 7 3 7 4 1, 13 " street ": 4 0 8 2 1 2 9 1 6, 14 " s t r e e t _ l e v e l ": 2, 15 " s t r e e t _ n a m e ": " Ly Thuong Kiet ", 16 " s t r e e t _ t y p e ": " primary ", 17 " c re at ed A t ": "2 0 2 0-1 0-1 8T1 3:2 9:0 0.0 1 3Z ", 18 " u pd at ed A t ": "2 0 2 0-1 0-1 8T1 3:2 9:0 0.0 1 3Z " 19 }

Listing 5.1: Một document lưu dữ liệu của segment trong hệ thống

Hiện tại hệ thống đang lưu trữ dữ liệu của khoảng 84.663 segment. Các

segment này thuộc các đoạn đường thực tế trong thành phố Hồ Chí Minh.

Biểu đồ hình 5.2 là thống kê cụ thể về số lượng các segment trong hệ thống

được phân loại theo các loại đường cụ thể.

Một phần của tài liệu Xây dựng hệ thống cảnh báo tình trạng giao thông trên nền tảng web (Trang 37 - 39)

Tải bản đầy đủ (PDF)

(135 trang)