一、高精路网数据设计概述

1、基础说明

高精路网数据的数据库表设计需要满足高精度几何信息存储、拓扑关系管理、多维度属性支撑(如车道级细节、交通规则、动态状态等),同时兼顾查询性能(如空间索引、分区策略)。以下是一套通用且可扩展的高精路网数据库表设计方案,基于 PostgreSQL + PostGIS(空间扩展)实现(主流空间数据库选型,支持高精度几何类型和空间索引)。如果需要管理其他结构道路信息需要在此基础做扩展

2、核心设计原则

  • 拓扑分离:道路、车道、路口等核心要素独立成表,通过关联字段维护拓扑关系;
  • 高精度支持:使用 PostGIS 的 GEOMETRY 类型(如 LINESTRINGZ 存储 3D 坐标、POINTZ 存储节点),坐标系推荐 EPSG:4326(WGS84)或 EPSG:3857(Web 墨卡托),根据实际场景选择;
  • 属性分层:静态属性(如道路等级、车道数)、动态属性(如拥堵状态、临时管制)分离存储,提升更新效率;
  • 索引优化:空间索引(GIST)、业务字段索引(如道路 ID、车道 ID)全覆盖,支持快速空间查询和关联查询。

二、数据结构基础信

1、道路基础信息表(road_base)

存储道路整体的静态基础属性,不包含车道级细节,是路网的顶层要素。

字段名

数据类型

约束

说明

road_id

VARCHAR(64)

PRIMARY KEY

道路唯一标识(建议采用 UUID 或业务编码,如“RD-XXX-XXX”)

road_name

VARCHAR(128)

NOT NULL

道路名称(如 “北京三环东路”)

road_type

SMALLINT

NOT NULL

道路类型:1 = 高速路,2 = 快速路,3 = 主干道,4 = 次干道,5 = 支路,6 = 小区道路

road_grade

SMALLINT

NOT NULL

道路等级:1 = 国家级,2 = 省级,3 = 市级,4 = 区级,5 = 乡级

direction

SMALLINT

NOT NULL

通行方向:1 = 双向,2 = 单向(东→西),3 = 单向(西→东),4 = 单向(南→北),5 = 单向(北→南)

length

DOUBLE PRECISION

NOT NULL

道路总长度(单位:米,与几何字段计算一致)

speed_limit

INTEGER

NOT NULL

最高限速(单位:km/h)

start_node_id

VARCHAR(64)

FOREIGN KEY

道路起点节点 ID(关联 road_node.node_id

end_node_id

VARCHAR(64)

FOREIGN KEY

道路终点节点 ID(关联 road_node.node_id

geometry

GEOMETRY(LINESTRINGZ, 4326)

NOT NULL

道路中心线几何(3D:X = 经度,Y = 纬度,Z = 高程)

status

SMALLINT

DEFAULT 1

道路状态:1 = 正常,2 = 施工,3 = 封闭,4 = 废弃

create_time

TIMESTAMP

DEFAULT NOW()

创建时间

update_time

TIMESTAMP

DEFAULT NOW()

更新时间

2、道路节点表(road_node)

存储道路的关键节点(如路口中心点、道路起止点、变道节点),是拓扑关系的核心支撑。

字段名

数据类型

约束

说明

node_id

VARCHAR(64)

PRIMARY KEY

节点唯一标识(UUID 或 “NODE-XXX-XXX”)

node_type

SMALLINT

NOT NULL

节点类型:1 = 路口节点,2 = 道路起止节点,3 = 变道节点,4 = 出入口节点

geometry

GEOMETRY(POINTZ, 4326)

NOT NULL

节点坐标(3D:X = 经度,Y = 纬度,Z = 高程)

link_road_ids

VARCHAR(1024)

关联道路 ID 列表(逗号分隔,如 “RD-1,RD-2”,表示该节点连接的道路)

is_traffic_light

BOOLEAN

DEFAULT FALSE

是否有交通信号灯:TRUE = 有,FALSE = 无

traffic_light_id

VARCHAR(64)

FOREIGN KEY

交通信号灯 ID(关联 traffic_light.traffic_light_id,无则为 NULL)

create_time

TIMESTAMP

DEFAULT NOW()

创建时间

update_time

TIMESTAMP

DEFAULT NOW()

更新时间

​​​​​​​3、车道信息表(lane_info)

高精路网核心表,存储车道级细节(高精度几何、车道属性、拓扑关系),是自动驾驶路径规划的核心依赖。

字段名

数据类型

约束

说明

lane_id

VARCHAR(64)

PRIMARY KEY

车道唯一标识(UUID 或 “LANE-XXX-XXX”)

road_id

VARCHAR(64)

FOREIGN KEY

所属道路 ID(关联 road_base.road_id

lane_num

SMALLINT

NOT NULL

车道序号(同一道路内的车道编号,如 1 = 最左侧车道,2 = 左侧第二车道)

lane_type

SMALLINT

NOT NULL

车道类型:1 = 直行车道,2 = 左转车道,3 = 右转车道,4 = 左转 + 直行车道,5 = 公交专用道,6 = 应急车道

direction

SMALLINT

NOT NULL

车道通行方向(与道路方向一致,参考 road_base.direction

width

DOUBLE PRECISION

NOT NULL

车道宽度(单位:米,高精度要求保留 2 位小数)

length

DOUBLE PRECISION

NOT NULL

车道长度(单位:米,与几何字段一致)

speed_limit

INTEGER

车道限速(优先级高于道路限速,无则继承道路限速)

start_node_id

VARCHAR(64)

FOREIGN KEY

车道起点节点 ID(关联 road_node.node_id

end_node_id

VARCHAR(64)

FOREIGN KEY

车道终点节点 ID(关联 road_node.node_id

left_lane_id

VARCHAR(64)

FOREIGN KEY

左侧相邻车道 ID(无则为 NULL)

right_lane_id

VARCHAR(64)

FOREIGN KEY

右侧相邻车道 ID(无则为 NULL)

allow_change_left

BOOLEAN

DEFAULT TRUE

是否允许向左变道:TRUE = 允许,FALSE = 禁止

allow_change_right

BOOLEAN

DEFAULT TRUE

是否允许向右变道:TRUE = 允许,FALSE = 禁止

geometry

GEOMETRY(LINESTRINGZ, 4326)

NOT NULL

车道中心线几何(3D,精度要求达厘米级)

lane_edge_left

GEOMETRY(LINESTRINGZ, 4326)

NOT NULL

车道左侧边缘线几何(3D)

lane_edge_right

GEOMETRY(LINESTRINGZ, 4326)

NOT NULL

车道右侧边缘线几何(3D)

status

SMALLINT

DEFAULT 1

车道状态:1 = 正常,2 = 施工占用,3 = 封闭,4 = 临时管制

create_time

TIMESTAMP

DEFAULT NOW()

创建时间

update_time

TIMESTAMP

DEFAULT NOW()

更新时间

​​​​​​​4、路口转向关系表(intersection_link)

维护路口内车道的转向逻辑(如 “车道 A→路口→车道 B”)。

字段名

数据类型

约束

说明

link_id

VARCHAR(64)

PRIMARY KEY

转向关系 ID(如 LINK-001)

intersection_node_id

VARCHAR(64)

FOREIGN KEY

路口节点 ID(关联 road_node.node_id,且 node_type=1)

in_lane_id

VARCHAR(64)

FOREIGN KEY

驶入车道 ID(进入路口的车道)

out_lane_id

VARCHAR(64)

FOREIGN KEY

驶出车道 ID(离开路口的车道)

turn_type

SMALLINT

NOT NULL

转向类型:1 = 直行,2 = 左转,3 = 右转,4 = 掉头

is_allowed

BOOLEAN

DEFAULT TRUE

是否允许该转向(如禁止左转则为 FALSE)

turn_speed_limit

INTEGER

DEFAULT 30

转向限速(km/h)

create_time

TIMESTAMP

DEFAULT NOW()

创建时间

update_time

TIMESTAMP

DEFAULT NOW()

更新时间

​​​​​​​5、路网动态状态表(road_dynamic)

存储道路 / 车道的动态属性(高频更新,与静态表分离)。

字段名

数据类型

约束

说明

dynamic_id

BIGSERIAL

PRIMARY KEY

自增主键

target_id

VARCHAR(64)

NOT NULL

ID(road_id 或 lane_id)

target_type

SMALLINT

NOT NULL

目标类型:1 = 道路,2 = 车道

congestion_level

SMALLINT

DEFAULT 1

拥堵等级:1 = 畅通,2 = 缓行,3 = 拥堵,4 = 严重拥堵

real_time_speed

INTEGER

实时车速(km/h)

temporary_control

BOOLEAN

DEFAULT FALSE

是否临时管制

control_reason

VARCHAR(256)

管制原因(如 “交通事故”“临时施工”)

update_time

TIMESTAMP

DEFAULT NOW()

数据更新时间(建议 30 秒~5 分钟更新一次)

​​​​​​​6、交通设施表(traffic_facility)

存储交通灯、标志、标线等附属设施。

字段名

数据类型

约束

说明

facility_id

VARCHAR(64)

PRIMARY KEY

设施 ID(如 FAC-001)

facility_type

SMALLINT

NOT NULL

设施类型:1 = 交通灯,2 = 禁止标志,3 = 警告标志,4 = 指示标志,5 = 标线

geometry

GEOMETRY(POINTZ/LINESTRINGZ, 4326)

NOT NULL

设施位置(点 / 线,3D)

associated_id

VARCHAR(64)

NOT NULL

关联对象 ID(节点 / 车道 / 道路)

associated_type

SMALLINT

NOT NULL

关联类型:1 = 节点,2 = 车道,3 = 道路

content

VARCHAR(128)

设施内容(如 “限速 60”“禁止左转”)

status

SMALLINT

DEFAULT 1

状态:1 = 正常,2 = 故障,3 = 拆除

create_time

TIMESTAMP

DEFAULT NOW()

创建时间

update_time

TIMESTAMP

DEFAULT NOW()

更新时间

三、总结说明

  • 高精路网表设计核心是车道级高精度几何存储+拓扑关系闭环,lane_info是核心表,需重点优化空间索引;
  • 采用 “动静分离” 策略,静态表(road_base/lane_info)稳定存储,动态表(road_dynamic)高频更新,兼顾性能和数据新鲜度;
  • 基于 PostGIS 的空间索引是提升 “附近道路 / 车道查询”“路径规划” 等核心操作性能的关键,必须优先创建。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐