V2X 地图
定义:地图消息。由路侧单元广播,向车辆传递局部区域的地图信息。包括局部区域的路口信息、路段信息、车道信息,道路之间的连接关系等。单个地图消息可以包含多个路口或区域的地图数据。路口处的信号灯信息则在 SPAT 消息中详细定义。
MAP 消息的主体结构,是一个层层嵌套的形式。其中实线框为必有项,虚线框为可选项。
示例文件
{
"msgCnt": "1",
// MsgCount
"nodes": {
"Node": [ // NodeList
// Node
{
"name": "YiZhuang-QuanQu", // DescriptiveName
"id": { //NodeReferenceID
"region": "10", // RoadRegulatorID
"id": "19" // NodeID
},
"refPos": { // Position3D
"lat": "397870006", // Latitude
"long": "1165119042", // Longitude
"elevation": "0" // Elevation
},
"inLinks": {
"Link": [ //LinkList
// Link
{
"name": "18-19", // DescriptiveName
"upstreamNodeId": { // NodeReferenceID
"region": "10",
"id": "18"
},
"speedLimits": {
"RegulatorySpeedLimit": [ // SpeedLimitList,
// RegulatorySpeedLimit
{
"type": { // SpeedLimitType
"vehicleMaxSpeed": null
},
"speed": "833" // Speed
}
]
},
"linkWidth": "660", // LaneWidth
"points": {
"RoadPoint": [ // PointList
// RoadPoint
{
"posOffset": { // PositionOffsetLLV
"offsetLL": { //PositionOffsetLL
"position-LatLon": { // Position-LLmD-64b
"lon": "1165142774", // Longitude
"lat": "397841165" // Latitude
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165129744",
"lat": "397857197"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120283",
"lat": "397868872"
}
}
}
}
]
},
"lanes": {
"Lane": [ // LaneList
// Lane
{
"laneID": "1", // LaneID
"laneWidth": "330", // LaneWidth
"laneAttributes": { // LaneAttributes
"shareWith": "0000000000", // LaneSharing
"laneType": { // LaneTypeAttributes
"vehicle": "00000000"
}
},
"maneuvers": "110000000000", // AllowedManeuvers
"connectsTo": {
"Connection": [ // ConnectsToList
// Connection
{
"remoteIntersection": { // NodeReferenceID
"region": "10",
"id": "12"
},
"connectingLane": { // ConnectingLane
"lane": "1", // LaneID
"maneuver": "010000000000" // AllowedManeuvers
},
"phaseId": "7" // PhaseID
},
{
"remoteIntersection": {
"region": "10",
"id": "20"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "6"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165142774",
"lat": "397841165"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165129744",
"lat": "397857197"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120283",
"lat": "397868872"
}
}
}
}
]
}
},
{
"laneID": "2",
"laneWidth": "330",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "001000000000",
"connectsTo": {
"Connection": {
"remoteIntersection": {
"region": "10",
"id": "29"
},
"connectingLane": {
"lane": "1",
"maneuver": "001000000000"
},
"phaseId": "8"
}
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165142774",
"lat": "397841165"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165129744",
"lat": "397857197"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120622",
"lat": "397869034"
}
}
}
}
]
}
}
]
}
},
{
"name": "12-19",
"upstreamNodeId": {
"region": "10",
"id": "12"
},
"speedLimits": {
"RegulatorySpeedLimit": {
"type": {
"vehicleMaxSpeed": null
},
"speed": "833"
}
},
"linkWidth": "800",
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165093456",
"lat": "397857496"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165102631",
"lat": "397862082"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117219",
"lat": "397869139"
}
}
}
}
]
},
"lanes": {
"Lane": [
{
"laneID": "1",
"laneWidth": "400",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "110000000000",
"connectsTo": {
"Connection": [
{
"remoteIntersection": {
"region": "10",
"id": "20"
},
"connectingLane": {
"lane": "1",
"maneuver": "010000000000"
},
"phaseId": "17"
},
{
"remoteIntersection": {
"region": "10",
"id": "29"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "16"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165093456",
"lat": "397857496"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165102631",
"lat": "397862082"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117219",
"lat": "397869139"
}
}
}
}
]
}
},
{
"laneID": "2",
"laneWidth": "400",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "101000000000",
"connectsTo": {
"Connection": [
{
"remoteIntersection": {
"region": "10",
"id": "29"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "16"
},
{
"remoteIntersection": {
"region": "10",
"id": "18"
},
"connectingLane": {
"lane": "1",
"maneuver": "001000000000"
},
"phaseId": "18"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165093858",
"lat": "397856990"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165102839",
"lat": "397861774"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117469",
"lat": "397868830"
}
}
}
}
]
}
}
]
}
},
{
"name": "20-19",
"upstreamNodeId": {
"region": "10",
"id": "20"
},
"speedLimits": {
"RegulatorySpeedLimit": {
"type": {
"vehicleMaxSpeed": null
},
"speed": "833"
}
},
"linkWidth": "660",
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165095240",
"lat": "397899027"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165105845",
"lat": "397885982"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117636",
"lat": "397871423"
}
}
}
}
]
},
"lanes": {
"Lane": [
{
"laneID": "1",
"laneWidth": "330",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "110000000000",
"connectsTo": {
"Connection": [
{
"remoteIntersection": {
"region": "10",
"id": "29"
},
"connectingLane": {
"lane": "1",
"maneuver": "010000000000"
},
"phaseId": "27"
},
{
"remoteIntersection": {
"region": "10",
"id": "18"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "26"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165095240",
"lat": "397899027"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165105845",
"lat": "397885982"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117636",
"lat": "397871423"
}
}
}
}
]
}
},
{
"laneID": "2",
"laneWidth": "330",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "001000000000",
"connectsTo": {
"Connection": {
"remoteIntersection": {
"region": "10",
"id": "12"
},
"connectingLane": {
"lane": "1",
"maneuver": "001000000000"
},
"phaseId": "28"
}
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165095240",
"lat": "397899027"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165105845",
"lat": "397885982"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165117292",
"lat": "397871274"
}
}
}
}
]
}
}
]
}
},
{
"name": "129-19",
"upstreamNodeId": {
"region": "10",
"id": "29"
},
"speedLimits": {
"RegulatorySpeedLimit": {
"type": {
"vehicleMaxSpeed": null
},
"speed": "833"
}
},
"linkWidth": "780",
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165153657",
"lat": "397887241"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165136723",
"lat": "397878978"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120695",
"lat": "397871234"
}
}
}
}
]
},
"lanes": {
"Lane": [
{
"laneID": "1",
"laneWidth": "390",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "110000000000",
"connectsTo": {
"Connection": [
{
"remoteIntersection": {
"region": "10",
"id": "18"
},
"connectingLane": {
"lane": "1",
"maneuver": "010000000000"
},
"phaseId": "37"
},
{
"remoteIntersection": {
"region": "10",
"id": "12"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "36"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165153657",
"lat": "397887241"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165136723",
"lat": "397878978"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120695",
"lat": "397871234"
}
}
}
}
]
}
},
{
"laneID": "2",
"laneWidth": "390",
"laneAttributes": {
"shareWith": "0000000000",
"laneType": {
"vehicle": "00000000"
}
},
"maneuvers": "101000000000",
"connectsTo": {
"Connection": [
{
"remoteIntersection": {
"region": "10",
"id": "12"
},
"connectingLane": {
"lane": "1",
"maneuver": "100000000000"
},
"phaseId": "36"
},
{
"remoteIntersection": {
"region": "10",
"id": "20"
},
"connectingLane": {
"lane": "1",
"maneuver": "001000000000"
},
"phaseId": "38"
}
]
},
"points": {
"RoadPoint": [
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165153184",
"lat": "397887780"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165136426",
"lat": "397879247"
}
}
}
},
{
"posOffset": {
"offsetLL": {
"position-LatLon": {
"lon": "1165120459",
"lat": "397871540"
}
}
}
}
]
}
}
]
}
}
]
}
}
]
}
}
根据示例,初步画出路口图为:
问题:目前根据标准无法确定如何画出弧形路口。
数据帧、数据元素
上述示例中注释为数据类型,参考下述数据帧、数据元素:
-
MinuteOfTheYear
数值用来表示当前年份,已经过去的总分钟数(UTC 时间)。其分辨率为 1 分钟。该数值配合 DSecond 数值,则可以表示以毫秒记的全年已过去的总时间。
MinuteOfTheYear ::= INTEGER (0..527040) -- the value 527040 shall be used for invalid
-
DSecond
定义 1 分钟内的毫秒级时刻。分辨率为 1 ms,有效范围是 0~59999。60000 及以上表示未知或无效数值。
DSecond ::= INTEGER (0..65535) -- units of milliseconds
-
MsgCount
发送方为自己发送的同类消息,依次进行编号。编号数值为 0~127,循环使用。该数据字段用于接收方对来自同一发送方的同一类消息,进行连续收包的监控和丢包的统计。
MsgCount ::= INTEGER (0..127)
-
NodeList
定义地图节点列表。
NodeList ::= SEQUENCE (SIZE(1..63)) OF Node
-
Node
地图节点。节点是地图的最基本组成部分,可以是交叉路口,也可以是一个路段的端点。在地图上,顺序的两个节点确定一条有向路段。节点属性包括名称、ID、位置以及节点相连的上游路段集合。一个节点中包含的路段,均以该节点作为下游端点。而从该节点出发的路段,则归属于路段下游节点的数据中。Node 数据帧中,refPos 字段用来提供当前数据帧作用范围内的参考三维位置坐标,帧中所有的位置偏移量,均基于该参考坐标计算。真实位置坐标等于偏移量加上参考坐标。
Node ::= SEQUENCE { -- Node can be an intersection, or a road endpoint name DescriptiveName OPTIONAL, -- Node name id NodeReferenceID, -- A globally unique value set, -- consisting of a regionID and -- node ID assignment refPos Position3D, -- 3D position of the center of this Node. -- This position is also the reference position for the elements inside inLinks LinkList OPTIONAL, -- all the links enter this Node ... }
-
DescriptiveName
定义名称字符串类型。
DescriptiveName ::= IA5String (SIZE(1..63))
-
NodeReferenceID
定义节点 ID。节点 ID 是由一个全局唯一的地区 ID 和一个地区内部唯一的节点 ID 组成。
NodeReferenceID ::= SEQUENCE { region RoadRegulatorID OPTIONAL, -- a globally unique regional assignment value -- typical assigned to a regional DOT authority -- the value zero shall be used for testing needs id NodeID -- a unique mapping to the node -- in question within the above region of use }
-
RoadRegulatorID
定义地图中各个划分区域的 ID 号。数值 0 仅用于测试。
RoadRegulatorID ::= INTEGER (0..65535) -- The value zero shall be used for testing only
-
NodeID
定义节点 ID。路网最基本的构成即节点和节点之间连接的路段。节点可以是路口,也可以是一条路的端点。一个节点的 ID 在同一个区域内是唯一的。数值 0~255 预留为测试使用。
NodeID ::= INTEGER (0..65535) -- The values zero through 255 are allocated for testing purposes -- Note that the value assigned to a node will be -- unique within a given regional ID only
-
Position3D
三维的坐标位置,经纬度和高程。
Position3D ::= SEQUENCE { lat Latitude, -- in 1/10th micro degrees long Longitude, -- in 1/10th micro degrees elevation Elevation OPTIONAL -- in 10 cm units }
-
Latitude
定义纬度数值,北纬为正,南纬为负。分辨率 1e-7°。
Latitude ::= INTEGER (-900000000..900000001) -- Units of 1/10 micro degree -- Providing a range of plus-minus 90 degrees
-
Longitude
定义经度数值。东经为正,西经为负。分辨率为 1e-7°。
Longitude ::= INTEGER (-1799999999..1800000001) -- Units of 1/10 micro degree -- Providing a range of plus-minus 180 degrees
-
Elevation
定义车辆海拔高程。分辨率为 0.1 m。数值 -4096 表示无效数值。
Elevation ::= INTEGER (-4096..61439) -- In units of 10 cm steps above or below the reference ellipsoid -- Providing a range of -409.5 to + 6143.9 meters -- The value -4096 shall be used when Unknown is to be sent
-
LinkList
定义路段列表。
LinkList ::= SEQUENCE (SIZE(1..32)) OF Link
-
Link
定义路段。从一个节点到相邻另一个节点的道路称为一个有向路段。其属性包含名称、上游节点 ID、限速集合、车道宽度,以及该路段包含的车道集合与交通标志标牌集合。
Link ::= SEQUENCE { name DescriptiveName OPTIONAL, -- Link name upstreamNodeId NodeReferenceID, -- this link is from upstreamNode to the Node it belongs to speedLimits SpeedLimitList OPTIONAL, -- List all the speed limits linkWidth LaneWidth OPTIONAL, -- Width of this link points PointList OPTIONAL, -- Define road points along the center of this link movements MovementList OPTIONAL, -- Define movements at intersection lanes LaneList, -- Lanes belong to this link ... }
-
SpeedLimitList
定义路段或车道的限速列表。
SpeedLimitList ::= SEQUENCE (SIZE(1..9)) OF RegulatorySpeedLimit
-
RegulatorySpeedLimit
定义限速属性。包括限速类型以及所规定的限制速度。
RegulatorySpeedLimit ::= SEQUENCE { type SpeedLimitType, -- The type of regulatory speed which follows speed Speed -- The speed in units of 0.02 m/s -- See Section 11 for converting and translating -- speed expressed in mph into units of m/s }
-
SpeedLimitType
定义限速类型,指示给出的限速大小对应的参考类型。
SpeedLimitType ::= ENUMERATED { unknown, -- Speed limit type not available maxSpeedInSchoolZone, -- Only sent when the limit is active maxSpeedInSchoolZoneWhenChildrenArePresent, -- Sent at any time maxSpeedInConstructionZone, -- Used for work zones, incident zones, etc. -- where a reduced speed is present vehicleMinSpeed, vehicleMaxSpeed, -- Regulatory speed limit for general traffic vehicleNightMaxSpeed, truckMinSpeed, truckMaxSpeed, truckNightMaxSpeed, vehiclesWithTrailersMinSpeed, vehiclesWithTrailersMaxSpeed, vehiclesWithTrailersNightMaxSpeed, ... }
-
Speed
车辆或其他交通参与者的速度大小。分辨率为 0.02 m/s。数值 8191 表示无效数值。
Speed ::= INTEGER (0..8191) -- Units of 0.02 m/s -- The value 8191 indicates that -- speed is unavailable
-
LaneWidth
定义车道宽度。分辨率为 1 cm。
LaneWidth ::= INTEGER (0..32767) -- units of 1 cm
-
PointList
定义一个有向路段上的中间位置点列表,用来表达路段上截面或片段的特殊属性。列表中所有位置点需按上游至下游顺序排列。
PointList ::= SEQUENCE (SIZE(2..31)) OF RoadPoint -- At least 2 points of 1 lane -- entry line and exit line -- points need to be listed sequentially -- from upstream to downstream
-
RoadPoint
表示完整道路上标记的一个位置点属性。包括相对位置、位置点处路段截面的特殊属性集合、以及该位置点到下游相邻位置点之间局部路段的特殊属性集合。当位置点为路段最下游的点,则其包含的下游截取路段属性为无效数据。
RoadPoint ::= SEQUENCE { posOffset PositionOffsetLLV, -- Position offset to the reference position ... }
-
PositionOffsetLLV
定义三维的相对位置(相对经纬度和相对高程)。约定偏差值等于真实值减去参考值。
PositionOffsetLLV ::= SEQUENCE { offsetLL PositionOffsetLL, -- offset in lon/lat offsetV VerticalOffset OPTIONAL -- offset in elevation }
-
PositionOffsetLL
经纬度偏差,来描述一个坐标点的相对位置。约定偏差值等于真实值减去参考值。提供了 7 种尺度的描述方式。
PositionOffsetLL ::= CHOICE { -- Locations with LL content Span at the equator when using a zoom of one: position-LL1 Position-LL-24B, -- within +- 22.634554 meters of the reference position position-LL2 Position-LL-28B, -- within +- 90.571389 meters of the reference position position-LL3 Position-LL-32B, -- within +- 362.31873 meters of the reference position position-LL4 Position-LL-36B, -- within +- 01.449308 Kmeters of the reference position position-LL5 Position-LL-44B, -- within +- 23.189096 Kmeters of the reference position position-LL6 Position-LL-48B, -- within +- 92.756481 Kmeters of the reference position position-LatLon Position-LLmD-64b -- node is a Lat/Lon absolute coordinates -- not a reference position }
-
Position-LL-24B
24 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 12 比特的经度、纬度偏差值组成。
Position-LL-24B ::= SEQUENCE { -- ranges of +- 0.0002047 degrees -- ranges of +- 22.634554 meters at the equator lon OffsetLL-B12, lat OffsetLL-B12 }
-
OffsetLL-B12
12 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B12 ::= INTEGER (-2048..2047) -- A range of +- 0.0002047 degrees -- Units of 0.1 microdegrees
-
Position-LL-28B
28 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 14 比特的经度、纬度偏差值组成。
Position-LL-24B ::= SEQUENCE { -- ranges of +- 0.0002047 degrees -- ranges of +- 22.634554 meters at the equator lon OffsetLL-B12, lat OffsetLL-B12 }
-
OffsetLL-B14
14 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B14 ::= INTEGER (-8192..8191) -- A range of +- 0.0008191 degrees -- Units of 0.1 microdegrees
-
Position-LL-32B
32 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 16 比特的经度、纬度偏差值组成。
Position-LL-32B ::= SEQUENCE { -- ranges of +- 0.0032767 degrees -- ranges of +- 362.31873 meters at the equator lon OffsetLL-B16, lat OffsetLL-B16 }
-
OffsetLL-B16
16 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B16 ::= INTEGER (-32768..32767) -- A range of +- 0.0032767 degrees -- Units of 0.1 microdegrees
-
Position-LL-36B
36 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 18 比特的经度、纬度偏差值组成。
Position-LL-36B ::= SEQUENCE { -- ranges of +- 0.0131071 degrees -- ranges of +- 01.449308 Kmeters at the equator lon OffsetLL-B18, lat OffsetLL-B18 }
-
OffsetLL-B18
18 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B18 ::= INTEGER (-131072..131071) -- A range of +- 0.0131071 degrees -- Units of 0.1 microdegrees
-
Position-LL-44B
44 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 22 比特的经度、纬度偏差值组成。
Position-LL-44B ::= SEQUENCE { -- ranges of +- 0.2097151 degrees -- ranges of +- 23.189096 Kmeters at the equator lon OffsetLL-B22, lat OffsetLL-B22 }
-
OffsetLL-B22
22 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B22 ::= INTEGER (-2097152..2097151) -- A range of +- 0.2097151 degrees -- Units of 0.1 microdegrees
-
Position-LL-48B
48 比特相对经纬度位置,表示当前位置点关于参考位置点的经纬度偏差。由两个 24 比特的经度、纬度偏差值组成。
Position-LL-48B ::= SEQUENCE { -- ranges of +- 0.8388607 degrees -- ranges of +- 92.756481 Kmeters at the equator lon OffsetLL-B24, lat OffsetLL-B24 }
-
OffsetLL-B24
24 比特数值,表示当前位置点关于参考位置点的经纬度偏差。值得注意的是,根据纬度的不同,相同的经纬度偏差值对应的实际球面距离可能不同。关于参考点,向东或向北偏移,数值为正,反之为负。分辨率为 1e-7°。
OffsetLL-B24 ::= INTEGER (-8388608..8388607) -- A range of +- 0.8388607 degrees -- Units of 0.1 microdegrees
-
Position-LLmD-64b
64 比特经纬度位置。实际上,该尺度采用了真实经纬度数据进行描述,非相对位置。
Position-LLmD-64b ::= SEQUENCE { -- a full 32b Lat/Lon range lon Longitude, lat Latitude }
-
VerticalOffset
定义垂直方向位置偏差。提供了7种尺度范围的偏差表示方式。
VerticalOffset ::= CHOICE { -- Vertical Offset -- All below in steps of 10cm above or below the reference ellipsoid offset1 VertOffset-B07, -- with a range of +- 6.3 meters vertical offset2 VertOffset-B08, -- with a range of +- 12.7 meters vertical offset3 VertOffset-B09, -- with a range of +- 25.5 meters vertical offset4 VertOffset-B10, -- with a range of +- 51.1 meters vertical offset5 VertOffset-B11, -- with a range of +- 102.3 meters vertical offset6 VertOffset-B12, -- with a range of +- 204.7 meters vertical elevation Elevation -- with a range of -409.5 to + 6143.9 meters }
-
MovementList
描述一条路段与下游路段的连接关系列表。
MovementList ::= SEQUENCE (SIZE(1..32)) OF Movement
-
Movement
描述道路与下游路段的连接关系,以及该连接对应的本地路口处信号灯相位 ID。此处的相位 ID 事实上也是 MAP 消息与 SPAT 消息的唯一关联。车辆在确定了转向行为后,能够通过该相位 ID 数据,查看到 SPAT 中对应的相位实时状态,从而获得行车过程中的信号灯数据辅助。
Movement ::= SEQUENCE { remoteIntersection NodeReferenceID, -- This entry indicates the downstream intersection of the link this lane connects to. -- This provides a means to create meshes of lanes phaseId PhaseID OPTIONAL -- The matching signal group send by -- the SPAT message for this lane/maneuver. -- Shall be present unless the connectingLane -- has no signal group (is un-signalized) }
-
LaneList
定义一个路段中包含的车道列表。
LaneList ::= SEQUENCE (SIZE(1..32)) OF Lane
-
Lane
定义车道。包含 ID、共享属性、车道出口的允许转向行为、车道与下游路段车道的连接关系列表以及车道中间点列表。
Lane ::= SEQUENCE { laneID LaneID, -- The unique ID number assigned -- to this lane object laneWidth LaneWidth OPTIONAL, laneAttributes LaneAttributes OPTIONAL, -- Define basic attribute of lane maneuvers AllowedManeuvers OPTIONAL, -- the permitted maneuvers for this lane connectsTo ConnectsToList OPTIONAL, -- connection to downsteam lanes speedLimits SpeedLimitList OPTIONAL, -- List all the speed limits points PointList OPTIONAL, -- Define road points and segments ... }
-
LaneWidth
定义车道宽度。分辨率为 1 cm。
LaneWidth ::= INTEGER (0..32767) -- units of 1 cm
-
LaneAttributes
定义车道属性。包括车道共享情况以及车道本身所属的类别特性。
LaneAttributes ::= SEQUENCE { shareWith LaneSharing OPTIONAL, laneType LaneTypeAttributes }
-
LaneSharing
定义车道被共享的情况。在已有的车道属性定义基础上,该数据表示此车道还会有其他的交通参与者者出现,并可能拥有相同的路权。数据中每一位置“1”表示对应的车道共享属性生效。
LaneSharing ::= BIT STRING { -- With bits as defined: overlappingLaneDescriptionProvided (0), -- Assert when another lane object is present to describe the -- path of the overlapping shared lane -- this construct is not used for lane objects which simply cross multipleLanesTreatedAsOneLane (1), -- Assert if the lane object path and width details represents -- multiple lanes within it that are not further described -- Various modes and type of traffic that may share this lane: otherNonMotorizedTrafficTypes (2), -- horse drawn etc. individualMotorizedVehicleTraffic (3), busVehicleTraffic (4), taxiVehicleTraffic (5), pedestriansTraffic (6), cyclistVehicleTraffic (7), trackedVehicleTraffic (8), pedestrianTraffic (9) } (SIZE (10)) -- All zeros would indicate 'not shared' and 'not overlapping
-
LaneTypeAttributes
定义不同类别车道的属性集合。
LaneTypeAttributes ::= CHOICE { vehicle LaneAttributes-Vehicle, -- motor vehicle lanes crosswalk LaneAttributes-Crosswalk, -- pedestrian crosswalks bikeLane LaneAttributes-Bike, -- bike lanes sidewalk LaneAttributes-Sidewalk, -- pedestrian sidewalk paths median LaneAttributes-Barrier, -- medians & channelization striping LaneAttributes-Striping, -- roadway markings trackedVehicle LaneAttributes-TrackedVehicle, -- trains and trolleys parking LaneAttributes-Parking, -- parking and stopping lanes ... }
-
LaneAttributes-Vehicle
车辆行驶车道的属性定义。用来描述一条车用车道的特殊属性和其允许行驶的汽车种类。
LaneAttributes-Vehicle ::= BIT STRING { -- With bits as defined: isVehicleRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present isVehicleFlyOverLane (1), -- path of lane is not at grade hovLaneUseOnly (2), restrictedToBusUse (3), restrictedToTaxiUse (4), restrictedFromPublicUse (5), hasIRbeaconCoverage (6), permissionOnRequest (7) -- e.g. to inform about a lane for e-cars } (SIZE (8,...))
-
LaneAttributes-Crosswalk
人行横道的属性定义。指示车道的一系列通过属性和人行辅助设施。
LaneAttributes-Crosswalk ::= BIT STRING { -- With bits as defined: -- MUTCD provides no suitable "types" to use here crosswalkRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present bicyleUseAllowed (1), -- The path allows bicycle traffic, -- if not set, this mode is prohibited isXwalkFlyOverLane (2), -- path of lane is not at grade fixedCycleTime (3), -- ped walk phases use preset times -- i.e. there is not a 'push to cross' button biDirectionalCycleTimes (4), -- ped walk phases use different SignalGroupID -- for each direction. The first SignalGroupID -- in the first Connection represents 'inbound' -- flow (the direction of travel towards the first -- node point) while second SignalGroupID in the -- next Connection entry represents the 'outbound' -- flow. And use of RestrictionClassID entries -- in the Connect follow this same pattern in pairs. hasPushToWalkButton (5), -- Has a demand input audioSupport (6), -- audio crossing cues present rfSignalRequestPresent (7), -- Supports RF push to walk technologies unsignalizedSegmentsPresent (8) -- The lane path consists of one of more segments -- which are not part of a signal group ID -- Bits 9~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-Bike
自行车道的属性定义。
LaneAttributes-Crosswalk ::= BIT STRING { -- With bits as defined: -- MUTCD provides no suitable "types" to use here crosswalkRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present bicyleUseAllowed (1), -- The path allows bicycle traffic, -- if not set, this mode is prohibited isXwalkFlyOverLane (2), -- path of lane is not at grade fixedCycleTime (3), -- ped walk phases use preset times -- i.e. there is not a 'push to cross' button biDirectionalCycleTimes (4), -- ped walk phases use different SignalGroupID -- for each direction. The first SignalGroupID -- in the first Connection represents 'inbound' -- flow (the direction of travel towards the first -- node point) while second SignalGroupID in the -- next Connection entry represents the 'outbound' -- flow. And use of RestrictionClassID entries -- in the Connect follow this same pattern in pairs. hasPushToWalkButton (5), -- Has a demand input audioSupport (6), -- audio crossing cues present rfSignalRequestPresent (7), -- Supports RF push to walk technologies unsignalizedSegmentsPresent (8) -- The lane path consists of one of more segments -- which are not part of a signal group ID -- Bits 9~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-Sidewalk
人行道的属性定义。
LaneAttributes-Sidewalk ::= BIT STRING { -- With bits as defined: sidewalk-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present bicyleUseAllowed (1), -- The path allows bicycle traffic, -- if not set, this mode is prohibited isSidewalkFlyOverLane (2), -- path of lane is not at grade walkBikes (3) -- bike traffic must dismount and walk -- Bits 4~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-Barrier
车道隔离的属性定义。主要指示车道隔离的物理形式。
LaneAttributes-Barrier ::= BIT STRING { -- With bits as defined: median-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present median (1), whiteLineHashing (2), stripedLines (3), doubleStripedLines (4), trafficCones (5), constructionBarrier (6), trafficChannels (7), lowCurbs (8), highCurbs (9) -- Bits 10~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-Striping
标线车道的属性定义。指示了车道上网纹或者标志标线所传达的道路信息,如禁行、路线标识等,辅助驾驶员通过一些复杂的路口或路段,提高驾驶安全性。
LaneAttributes-Striping ::= BIT STRING { -- With bits as defined: stripeToConnectingLanesRevocableLane (0), -- this lane may be activated or not activated based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present stripeDrawOnLeft (1), stripeDrawOnRight (2), -- which side of lane to mark stripeToConnectingLanesLeft (3), stripeToConnectingLanesRight (4), stripeToConnectingLanesAhead (5) -- the stripe type should be -- presented to the user visually -- to reflect stripes in the -- intersection for the type of -- movement indicated -- Bits 6~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-TrackedVehicle
轨道车辆车道的属性定义。用来描述一条轨道车辆车道的特殊属性和其允许行驶的车辆种类。
LaneAttributes-TrackedVehicle ::= BIT STRING { -- With bits as defined: spec-RevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present spec-commuterRailRoadTrack (1), spec-lightRailRoadTrack (2), spec-heavyRailRoadTrack (3), spec-otherRailType (4) -- Bits 5~15 reserved and set to zero } (SIZE (16))
-
LaneAttributes-Parking
停车车道的属性定义。指示车道允许停车的种类和停靠方式。
LaneAttributes-Parking ::= BIT STRING { -- With bits as defined: -- Parking use details, note that detailed restrictions such as -- allowed hours are sent by way of ITIS codes in the TIM message parkingRevocableLane (0), -- this lane may be activated or not based -- on the current SPAT message contents -- if not asserted, the lane is ALWAYS present parallelParkingInUse (1), headInParkingInUse (2), doNotParkZone (3), -- used to denote fire hydrants as well as -- short disruptions in a parking zone parkingForBusUse (4), parkingForTaxiUse (5), noPublicParkingUse (6) -- private parking, as in front of -- private property -- Bits 7~15 reserved and set to zero } (SIZE (16))
-
AllowedManeuvers
定义一个(机动车)车道的允许转向行为。
AllowedManeuvers ::= BIT STRING { -- With bits as defined: -- Allowed maneuvers at path end (stop line) -- All maneuvers with bits not set are therefore prohibited -- A value of zero shall be used for unknown, indicating no Maneuver 76 T/CSAE 53—2020 maneuverStraightAllowed (0), -- a Straight movement is allowed in this lane maneuverLeftAllowed (1), -- a Left Turn movement is allowed in this lane maneuverRightAllowed (2), -- a Right Turn movement is allowed in this lane maneuverUTurnAllowed (3), -- a U turn movement is allowed in this lane maneuverLeftTurnOnRedAllowed (4), -- a Stop, and then proceed when safe movement -- is allowed in this lane maneuverRightTurnOnRedAllowed (5), -- a Stop, and then proceed when safe movement -- is allowed in this lane maneuverLaneChangeAllowed (6), -- a movement which changes to an outer lane -- on the egress side is allowed in this lane -- (example: left into either outbound lane) maneuverNoStoppingAllowed (7), -- the vehicle should not stop at the stop line -- (example: a flashing green arrow) yieldAllwaysRequired (8), -- the allowed movements above are not protected -- (example: an permanent yellow condition) goWithHalt (9), -- after making a full stop, may proceed caution (10), -- proceed past stop line with caution reserved1 (11) -- used to align to 12 Bit Field } (SIZE(12))
-
ConnectsToList
定义路段中每条车道,在下游路口处与下游路段中车道的转向连接关系列表。
ConnectsToList ::= SEQUENCE (SIZE(1..16)) OF Connection
-
Connection
定义当前车道与下游路段中车道的连接关系。包括下游路段出口节点ID、连接的下游路段车道基本信息以及对应的信号灯相位号。在车道连接中定义的相位号,是对 DF_Movement 中定义转向的相位号的一个补充。当某一些车道在转向时需要参考一些特殊的信号灯相位(而不是 DF_Movement 中定义的默认相位),则应该将其定义在本数据帧中。
Connection::= SEQUENCE { remoteIntersection NodeReferenceID, -- This entry indicates the downstream intersection of the link this lane connects to. -- This provides a means to create meshes of lanes connectingLane ConnectingLane OPTIONAL, -- The index of the connecting lane and also -- the maneuver from the current lane to it -- When we want to list the allowed lanes of the next link -- this lane can lead to, we use this entry phaseId PhaseID OPTIONAL -- The matching signal group send by -- the SPAT message for this lane/maneuver. -- Shall be present unless the connectingLane -- has no signal group (is un-signalized) }
-
ConnectingLane
用于定位上游车道转向连接的下游车道。包括下游车道 ID 以及该转向的允许行驶行为,下游车道 ID 的作用范围是该车道所在的路段。
ConnectingLane ::= SEQUENCE { lane LaneID, -- Index of the connecting lane maneuver AllowedManeuvers OPTIONAL -- The Maneuver between -- the enclosing lane and this lane -- at the stop line to connect them }
-
PhaseID
定义信号灯相位 ID。数值 0 表示无效 ID。
PhaseID ::= INTEGER (0..255) -- The value 0 shall be used when the ID is not available or not known