跳转到内容

导入 Lanelet2 (.osm) 文件

drawtonomy 能读取 Lanelet2 OSM 格式的地图。示例地图可从 Autoware 文档 获取。

导入完整的 Lanelet2 文件。

每次 .osm 导入都会经过选择预览 ——没有”直接全部导入”的快捷方式。如果要导入整份文件,需要在预览中选中所有内容:

  1. 打开菜单(左上角的汉堡菜单)→ Import…
  2. 选择 .osm 文件。
  3. drawtonomy 解析文件,显示一张预览地图,标出所有车道。
  4. 选中全部(拖拽方框框住整张地图,或使用全选控件),然后点击 Import (N)
  5. 画布填充上车道形状及其连接关系。

如果只需要地图的一部分,可以只选中那些车道——参考下面的 仅导入指定车道

如果你只是想找个文件来试试导入,这是最小化的有效 Lanelet2 .osm 文件 ——一条由两条边界方式组成的车道(一条 solid 左边界和一条 dashed 右边界),跨越六个节点。保存为 sample.osm 并按上面的步骤导入;drawtonomy 会正确渲染一条单车道,显示对应的实线 / 虚线边界风格。

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="hand-authored-lanelet2-sample">
<node id="1" lat="0.0000000" lon="0.0000000">
<tag k="local_x" v="0"/><tag k="local_y" v="0"/><tag k="ele" v="0"/>
</node>
<node id="2" lat="0.0000900" lon="0.0000000">
<tag k="local_x" v="0"/><tag k="local_y" v="10"/><tag k="ele" v="0"/>
</node>
<node id="3" lat="0.0001800" lon="0.0000180">
<tag k="local_x" v="2"/><tag k="local_y" v="20"/><tag k="ele" v="0"/>
</node>
<node id="4" lat="0.0000000" lon="0.0000320">
<tag k="local_x" v="3.5"/><tag k="local_y" v="0"/><tag k="ele" v="0"/>
</node>
<node id="5" lat="0.0000900" lon="0.0000320">
<tag k="local_x" v="3.5"/><tag k="local_y" v="10"/><tag k="ele" v="0"/>
</node>
<node id="6" lat="0.0001800" lon="0.0000500">
<tag k="local_x" v="5.5"/><tag k="local_y" v="20"/><tag k="ele" v="0"/>
</node>
<way id="10">
<nd ref="1"/><nd ref="2"/><nd ref="3"/>
<tag k="type" v="line_thin"/>
<tag k="subtype" v="solid"/>
</way>
<way id="11">
<nd ref="4"/><nd ref="5"/><nd ref="6"/>
<tag k="type" v="line_thin"/>
<tag k="subtype" v="dashed"/>
</way>
<relation id="100">
<member type="way" ref="10" role="left"/>
<member type="way" ref="11" role="right"/>
<tag k="type" v="lanelet"/>
<tag k="subtype" v="road"/>
<tag k="location" v="urban"/>
<tag k="one_way" v="yes"/>
</relation>
</osm>

关键的部分:

  • 节点(Nodes) 承载几何数据。Lanelet2 存储实际的 lat / lon, Autoware 风格的文件还带有投影坐标 local_x / local_y
  • 方式(Ways) 是车道边界。type=line_thin 配上 subtype=solidsubtype=dashed 设置导入时看到的路标线风格。
  • lanelet 关系 把一条 left 方式和一条 right 方式绑定成 一条可行驶的车道。添加更多车道(并在邻近车道间共享方式) 来构建路网。

对于大型地图,导入每条车道会拖慢编辑器。改用车道选择对话框:

拖拽框选只想要的车道,然后导入。
  1. 打开菜单 → Import… 并选择 .osm 文件。
  2. drawtonomy 显示预览地图。
  3. 点击或拖拽选择想要的车道。
  4. 点击 Import (N),其中 N 是你选中的车道数。

drawtonomy 能处理大型地图,你可以在需要时导入完整的 Lanelet2 文件。当只关心某一区域时,仅导入需要的车道 能让编辑器更快响应,并避免加载你不会编辑的几何数据。

导入的车道是完整保真的 Lane 图形;Lanelet2 文件中的连接关系会被保留。编辑、平滑边界, 或 导出回去 都不会丧失拓扑关系。

drawtonomy 在导入时会保留原始 .osm XML 作为附带文件。 导出回 .osm (Lanelet2) 时,原始 ID 和标签会被保留, 你没有修改过的管制要素 ——信号灯、优先权、速度限制、停止线 —— 会按原样逐字从源文件重新生成。

导入的管制要素也变成可编辑的:信号灯、交通标志(包括速度限制)、停止线、优先权关系以 drawtonomy 图形的形式导入,链接到它们所管理的车道,你也可以用同样的 UI 从零开始放置新的要素。对于激光雷达对齐或城市级编辑, 请使用 Vector Map Builder 或 JOSM