fix(extract): carriageway[].klasse als irreführendes Feld entfernt

Befund 6, Controller-Entscheidung: carriageway_area() vereinigt das ganze
Straßennetz zu wenigen Zusammenhangskomponenten, und _classified() gab
jeder Komponente die Klasse ihrer breitesten enthaltenen Straße - am
echten Netz trugen dadurch 91,2 % der Fahrbahnfläche "boulevard", auch wo
tatsächlich eine Wohnstraße lag. Kein Verbraucher las das Feld (Browser
und Minimap färben die Fahrbahn einheitlich); die Klasse je Straße steht
weiterhin in edges.

_classified() samt Aufruf aus run.py entfernt, chunk_payload() nimmt
carriageway jetzt als reine Liste von Polygonen statt (poly, klasse)-
Tupeln entgegen, Sortierschlüssel entsprechend auf poly allein verkürzt.
Fixtures in test_emit.py, test_overview.py, tests/geometry.test.js und
tests/streaming.test.js sowie das Chunk-Format im Entwurf nachgezogen;
tests/props.test.js bleibt unverändert, weil dort edges betroffen sind,
nicht carriageway.
This commit is contained in:
knso committed 2026-09-18 06:54:01 +02:00
1 parent a397892847
commit 77d53fb170
7 files changed
+23 -37

No files matched your search

+4 -4
View File
@@ -23,7 +23,7 @@ def _fixture(tmp_path: Path) -> Path:
"origin": [SLICE["x0"], -SLICE["y1"]],
"land": [[_ring(0, 0, 250, 250)]],
"surfaces": [],
"carriageway": [{"poly": [_ring(100, 0, 120, 250)], "klasse": "hauptstrasse"}],
"carriageway": [{"poly": [_ring(100, 0, 120, 250)]}],
"curb": [], "sidewalk": [], "markings": [], "lots": [], "bridges": [], "edges": [],
"buildings": [{"poly": [_ring(20, 20, 60, 60)], "height": 12.0, "source": "district", "speculative": False}],
"palms": [[200.0, 200.0]],
@@ -99,7 +99,7 @@ def test_walkable_mask_counts_only_ground_with_collision(tmp_path):
"land": [],
"surfaces": [{"poly": [_ring(0, 0, 40, 40)], "kind": "sand"}],
"curb": [], "edges": [], "markings": [],
"carriageway": [{"poly": [_ring(100, 0, 120, 40)], "klasse": "wohnstrasse"}],
"carriageway": [{"poly": [_ring(100, 0, 120, 40)]}],
"lots": [{"poly": [_ring(140, 0, 160, 40)]}],
"bridges": [{"poly": [_ring(180, 0, 200, 40)]}],
"sidewalk": [{"poly": [_ring(220, 0, 240, 40)]}],
@@ -206,7 +206,7 @@ def _strassen_fixture(tmp_path: Path) -> Path:
"land": [[_ring(0, 0, 250, 250)]],
"surfaces": [], "buildings": [], "palms": [], "paths": [], "edges": [], "curb": [],
"bridges": [], "lots": [{"poly": [_ring(10, 150, 60, 200)]}],
"carriageway": [{"poly": [_ring(100, 0, 112, 250)], "klasse": "hauptstrasse"}],
"carriageway": [{"poly": [_ring(100, 0, 112, 250)]}],
"sidewalk": [{"poly": [_ring(112, 0, 124, 250)]}],
"markings": [{"poly": [_ring(105, 0, 105.1, 250)], "art": "gelb_doppelt"}],
}
@@ -272,7 +272,7 @@ def test_bruecke_bleibt_im_kartenbild_als_bruecke_sichtbar(tmp_path):
"origin": [SLICE["x0"], -SLICE["y1"]],
"land": [], "surfaces": [], "paths": [], "curb": [], "edges": [], "markings": [],
"sidewalk": [], "lots": [],
"carriageway": [{"poly": [_ring(100, 0, 120, 40)], "klasse": "hauptstrasse"}],
"carriageway": [{"poly": [_ring(100, 0, 120, 40)]}],
"bridges": [{"poly": [_ring(100, 0, 120, 40)]}],
"buildings": [], "palms": [],
}