转载自:V2X消息之MAP消息解读_fantasyYXQ的博客-CSDN博客_map消息
注:MAP信息以Link为单位,从上游指向下游节点,MAP信息中的Node为下游节点
解析MAP信息:
Node:下游节点ID,
Link:连接的上游节点,和Node这个下游节点组成一段道路
Lane:Link上的车道信息,规定从上游节点向下游节点的方向,从左到右依次为1/2/3
数据元素的解释:《YDT 3709-2020 基于LTE的车联网无线通信技术 消息层技术要求》
《基于LTE的车联网无线通信技术 协议一致性测试控制接口规范_202107.pdf》
下面是信通院提供的MAP消息:
MapData ::= {
msgCnt: 44
timeStamp: 12
nodes: NodeList ::= {
Node ::= {
id: NodeReferenceID ::= {
region: 16
id: 1
}
refPos: Position3D ::= {
lat: 301234567
long: 1201234567
}
inLinks: LinkList ::= {
Link ::= {
name: 'ramp' Link 1
upstreamNodeId: NodeReferenceID ::= {
region: 0
id: 0
}
speedLimits: SpeedLimitList ::= {
RegulatorySpeedLimit ::= {
type: 1 (maxSpeedInSchoolZone)
speed: 1000
}
}
linkWidth: 500
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
movements: MovementList ::= {
Movement ::= {
remoteIntersection: NodeReferenceID ::= {
region: 1
id: 2
}
phaseId: 2
}
}
lanes: LaneList ::= {
Lane ::= {
laneID: 0
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
Lane ::= {
laneID: 1
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
}
}
Link ::= {
name: 'ramp' Link 1
upstreamNodeId: NodeReferenceID ::= {
region: 16
id: 1
}
speedLimits: SpeedLimitList ::= {
RegulatorySpeedLimit ::= {
type: 1 (maxSpeedInSchoolZone)
speed: 1000
}
}
linkWidth: 500
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
movements: MovementList ::= {
Movement ::= {
remoteIntersection: NodeReferenceID ::= {
region: 1
id: 2
}
phaseId: 2
}
}
lanes: LaneList ::= {
Lane ::= {
laneID: 0
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
Lane ::= {
laneID: 1
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
}
}
}
}
Node ::= {
id: NodeReferenceID ::= {
region: 16
id: 1
}
refPos: Position3D ::= {
lat: 301234567
long: 1201234567
}
inLinks: LinkList ::= {
Link ::= {
name: 'ramp' Link 1
upstreamNodeId: NodeReferenceID ::= {
region: 0
id: 0
}
speedLimits: SpeedLimitList ::= {
RegulatorySpeedLimit ::= {
type: 1 (maxSpeedInSchoolZone)
speed: 1000
}
}
linkWidth: 500
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
movements: MovementList ::= {
Movement ::= {
remoteIntersection: NodeReferenceID ::= {
region: 1
id: 2
}
phaseId: 2
}
}
lanes: LaneList ::= {
Lane ::= {
laneID: 0
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
Lane ::= {
laneID: 1
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
}
}
Link ::= {
name: 'ramp' Link 1
upstreamNodeId: NodeReferenceID ::= {
region: 16
id: 1
}
speedLimits: SpeedLimitList ::= {
RegulatorySpeedLimit ::= {
type: 1 (maxSpeedInSchoolZone)
speed: 1000
}
}
linkWidth: 500
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
movements: MovementList ::= {
Movement ::= {
remoteIntersection: NodeReferenceID ::= {
region: 1
id: 2
}
phaseId: 2
}
}
lanes: LaneList ::= {
Lane ::= {
laneID: 0
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
Lane ::= {
laneID: 1
laneWidth: 200
laneAttributes: LaneAttributes ::= {
laneType: 07
}
maneuvers: 40 00 (4 bits unused)
points: PointList ::= {
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1201234567
lat: 301234567
}
}
}
RoadPoint ::= {
posOffset: PositionOffsetLLV ::= {
offsetLL: Position-LLmD-64b ::= {
lon: 1202234567
lat: 302234567
}
}
}
}
}
}
}
}
}
}
}
参考文章:CSAE V2X应用层MAP消息解读 - 灰信网(软件开发博客聚合)
建议参考上面连接中的含义说明。
MAP消息以Node作为开头:
inLinks给出了以当前节点为下游节点的集合。如果一个下游节点对应多个上游节点,会形成多条Link,也就是inLinks,会生成多段Link。
对于每一段Link来说:会对这段Link进行Lane属性的定义,以及与这段Link进行连接的下游Link的定义,这段Link每条车道允许的驾驶行为等。
借鉴一位大佬提供的链接:RSU上报RSI_路网数字化服务 DRIS_API参考_API_设备侧MQTT接口参考_消息上报_华为云