Skip to content

Fix OSM-related crashes - #302

Open
mrkajetanp wants to merge 2 commits into
oscarpilote:masterfrom
mrkajetanp:bug-fixes
Open

Fix OSM-related crashes#302
mrkajetanp wants to merge 2 commits into
oscarpilote:masterfrom
mrkajetanp:bug-fixes

Conversation

@mrkajetanp

Copy link
Copy Markdown

Hi,
I've come across occasional crashes either due to OSM timeouts or due to python behaviour around MultiLineStrings. These two commits fix them for me.

Prevent a bug that makes the tile generation crash if it runs out of
OSM download attemps, while not adding excessive waiting times between
downolad attempts.
…tring

MultiLineString can crash if it is passed a generator. Replace the
generator with a list comprehension to prevent crashes.
shizumaat added a commit to shizumaat/Ortho4XP-novemberlima that referenced this pull request Jun 15, 2026
…ension

User ruling (2026-06-10): the 1.5% cap applies along the taxi CENTERLINE;
cross-axis diagonal chords are unregulated (ICAO Annex 14 / EASA
CS-ADR-DSN.D.265/.280) and inside-of-curve edges legitimately exceed the
cap.  All-pair/visibility chords had pinned high-speed exit junctions
flat (HECA oscarpilote#282 could not rise toward A4).

Built:
- _PER_AXIS_JUNCTIONS=True + the per-axis rule applied where junction
  constraints are actually built (_build_shape_constraints visibility
  path; the flag previously only touched the unused _build_edges path):
  along-axis pairs cap at the ARC between projections, cross-axis
  diagonals drop, ring-adjacent pairs survive.
- Curve-aware corridor distances: _junc_axis_arc supersedes shorter
  geodesics in _junc_geo_dist (hard bands, twist clamps, ties).
- RUNWAY-EXIT EXTENSION: chain termini at runway-touching junctions get
  a virtual HARD station at the runway contact; contact = the qualifying
  centerline's nearest runway intersection (extending ingest-cut ends
  straight) or the fan's THROAT vertex by in-junction geodesic when the
  apt.dat line cuts the corner (A4's line: 40 m in-junction where the
  fan flow runs ~190 m); value = runway edge interpolation; the virtual
  gap is recorded as a twist line source so the junction interior is
  painted; singletons survive when extended; extended singletons skip
  the anchor relax (it crushed A5 flat and left 3.9 m at the oscarpilote#284 seam).

MEASURED (HECA): junction oscarpilote#282 now carries the climb (59.4 throat ->
62.6 at A4's mouth, the user-specified behaviour); A4 7% -> 1.4%.
NOT shippable yet: A5/oscarpilote#283 unchanged (its far-mouth nodes were already
relief-crushed to 60.5 pre-corridor - different mechanism), oscarpilote#284 3.9 m,
new oscarpilote#302 3.7 m / oscarpilote#192 1.2 m, and the 05C dip regressed 107.9 -> 110.4
(virtual anchors changed the demand measurement).  Parked for tuning.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant