Phase 2/3/5 of the building-blockage support: * Parser streams csv.gz tiles into compact records (centroid, radius, height) — keeps RAM ~32 B per polygon, drops -1.0-height entries. * Index buckets records into 0.01° (~1 km) grid cells in a public ETS table for concurrent reads; max_height_near/3 and records_near/3 scan only the 9 nearest buckets. * Loader lazily parses any cached quadkey before a Calculate so the scorer is terrain-only when tiles aren't on disk yet. * Rover.PathTerrain now treats each path-sample obstacle as terrain_elev + max_local_building_height, so blocked LOS through recent construction actually reduces clearance. * Selecting a candidate pushes a candidate_buildings event with the buildings near each rover→station path; the hook renders them as height-coloured circles (yellow <10 m, orange 10-30 m, red >=30 m) with a tooltip showing height in meters. |
||
|---|---|---|
| .. | ||
| microwaveprop | ||
| microwaveprop_web | ||
| mix/tasks | ||
| microwaveprop.ex | ||
| microwaveprop_web.ex | ||