a-b-street / a-b-street/osm2streets
Stop lines
- 主要语言
- 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