chore(task): archive 08-08-cesium-lane-centered-route
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# osm2streets 车道中心线研究
|
||||
|
||||
## 上游实现
|
||||
|
||||
- 调研版本:`osm2streets-js-node 0.1.4`,上游 `osm2streets` commit `fc119c47dac567d030c6ce7c24a48896f58ed906`。
|
||||
- `Road::get_untrimmed_center_line()` 先根据 OSM reference line、`reference_line_placement`、道路总宽度和驾驶方向生成 road full-width centerline。
|
||||
- `Road::get_lane_center_lines()` 按 `lane_specs_ltr` 从左到右累计真实 lane width,再调用 `center_line.shift_from_center(total_width, width_from_left_side)` 生成每条 lane 的中心线。
|
||||
- `to_lane_polygons_geojson()` 先取得上述 lane centerline,再调用 `pl.make_polygons(lane.width)` 生成 Driving polygon。因此 lane polygon 是 lane centerline 的派生产物。
|
||||
- `PolyLine::make_polygons()` 使用两侧等距平移和 miter 交点生成 polygon ring;ring 前半边与反向后的后半边一一对应,其中点可恢复原始 lane centerline。
|
||||
|
||||
## 当前区域审计
|
||||
|
||||
- `54` 个 Driving polygon:`32` 个四边形,其余包含 `6/8/10/18` 个非闭合顶点。
|
||||
- 使用 `network.json` 的 `road.center_line`、`lane_specs_ltr` 和 geom miter 算法重建所有 lane centerline。
|
||||
- 与 `scripts/lib/lane-geometry.js:laneCenterline()` 结果逐点比较,最大误差为 `0.006 m`。
|
||||
- 结论:道路区间的 polygon 中轴提取与 osm2streets 权威 lane centerline 一致,不是肉眼所见大偏移的来源。
|
||||
|
||||
## 路口 movement 限制
|
||||
|
||||
- osm2streets 的公开 JS API 没有导出可直接用于车辆行驶的 lane-to-lane movement centerline。
|
||||
- `debugMovementsFromLaneGeojson()` 只是调试箭头:在双向 road centerline 上使用固定 `1.3 m` 偏移,再用直线连接 road endpoints;它不是 lane-aware 仿真轨迹,不能复用。
|
||||
- 当前项目的大偏移排查应限定在:selected lane 与 internal road 的映射、junction connector、U-turn,以及多条闭环 route 同时显示造成的视觉混淆。
|
||||
- 后续 connector 必须显式关联 `network.json` 的 internal road/intersection,并受 `intersection_surface.geojson` 约束;不得修改已验证的 lane section centerline。
|
||||
Reference in New Issue
Block a user