a-b-street / a-b-street/osm2streets

Stop lines

未关闭
#165 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
tracking issue
主要语言
Jupyter Notebook
星标
155
派生
14
PR 合并指标
30 天内没有已合并 PR

描述

Splitting out from #72. The representation:

```rust
pub struct Road {
...
pub stop_line_start: StopLine,
pub stop_line_end_: StopLine,
}

pub struct StopLine {
/// Relative to the road's reference_line. Stop lines at the start of the road will have low
/// values, and at the end will have values closer to the reference_line's length.
pub vehicle_distance: Distance,
/// If there is an advanced stop line for cyclists different than the vehicle position, this
/// specifies it
pub bike_distance: Option,
pub interruption: TrafficInterruption,
}

/// How a lane of travel is interrupted, as it meets another or ends.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
pub enum TrafficInterruption {
Uninterrupted,
Yield,
Stop,
Signal,
DeadEnd,
}
```

As a first step, we can assign this based on heuristics and explicitly mapped things in OSM. An example heuristic could be figuring out that minor roads yield or stop and major roads are interrupted at uncontrolled intersections. We can then render it (necessary for debugging/development and also to improve visuals).

Is the representation what we want? I'm not sure what the distances should be relevant to... probably `get_untrimmed_center_line` like `trim_start,end`, not the reference line?

I'll add notes below as I figure out all the things in OSM that help us figure this out.

贡献指南

打开贡献指南

调研方向

The issue defines a Road struct with stop_line_start and stop_line_end fields of type StopLine. Start by examining the existing code in the repository for the Road struct and the get_untrimmed_center_line function. The task involves implementing heuristics to assign StopLine values based on OSM data, likely in the conversion logic. Look for modules that handle OSM parsing and road network generation. 'Done' means the stop lines are correctly assigned and can be rendered for debugging.

由索引模型根据 Issue 内容生成。

评估

技术栈
rust
领域
backend
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
45/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。