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:
1 parent
a397892847
commit
77d53fb170
7 files changed
+23
-37
No files matched your search
@@ -114,12 +114,12 @@ def test_the_same_geometry_in_another_order_gives_the_same_output():
|
||||
a_gedreht = Polygon([(-980, 2480), (-980, 2490), (-990, 2490), (-990, 2480)])
|
||||
assert a.equals(a_gedreht) and list(a.exterior.coords) != list(a_gedreht.exterior.coords)
|
||||
erste = chunk_payload(0, 0, land=[a, b], surfaces=[(a, "urban"), (b, "urban")],
|
||||
carriageway=[(a, "wohnstrasse"), (b, "wohnstrasse")], curb=[], sidewalk=[],
|
||||
carriageway=[a, b], curb=[], sidewalk=[],
|
||||
markings=[], lots=[], bridges=[b], edges=[],
|
||||
buildings=[(a, HEIGHT, False), (b, HEIGHT, True)],
|
||||
palms=[(-990.0, 2490.0), (-960.0, 2460.0)], paths=[a, b])
|
||||
zweite = chunk_payload(0, 0, land=[b, a_gedreht], surfaces=[(b, "urban"), (a_gedreht, "urban")],
|
||||
carriageway=[(b, "wohnstrasse"), (a_gedreht, "wohnstrasse")], curb=[], sidewalk=[],
|
||||
carriageway=[b, a_gedreht], curb=[], sidewalk=[],
|
||||
markings=[], lots=[], bridges=[b], edges=[],
|
||||
buildings=[(b, HEIGHT, True), (a_gedreht, HEIGHT, False)],
|
||||
palms=[(-960.0, 2460.0), (-990.0, 2490.0)], paths=[b, a_gedreht])
|
||||
@@ -159,14 +159,14 @@ def test_neue_schichten_stehen_im_chunk():
|
||||
payload = chunk_payload(
|
||||
0, 0,
|
||||
land=[box(0, 2400, 100, 2500)], surfaces=[],
|
||||
carriageway=[(box(10, 2400, 20, 2500), "wohnstrasse")],
|
||||
carriageway=[box(10, 2400, 20, 2500)],
|
||||
curb=[LineString([(10, 2400), (10, 2500)])],
|
||||
sidewalk=[box(20, 2400, 23, 2500)],
|
||||
markings=[(box(14, 2440, 16, 2443), "gelb_gestrichelt")],
|
||||
lots=[box(40, 2400, 60, 2420)],
|
||||
bridges=[], edges=[(LineString([(15, 2400), (15, 2500)]), "wohnstrasse", 12.0, 7.0)],
|
||||
buildings=[], palms=[])
|
||||
assert payload["carriageway"][0]["klasse"] == "wohnstrasse"
|
||||
assert set(payload["carriageway"][0]) == {"poly"}, "Befund 6 der Fixwelle: klasse entfaellt ganz"
|
||||
assert payload["markings"][0]["art"] == "gelb_gestrichelt"
|
||||
assert payload["edges"][0]["klasse"] == "wohnstrasse"
|
||||
assert payload["edges"][0]["fahrbahn"] == 7.0
|
||||
@@ -179,10 +179,10 @@ def test_neue_schichten_sind_lauf_stabil():
|
||||
from shapely.geometry import LineString, box
|
||||
a, b = box(10, 2400, 20, 2450), box(30, 2400, 40, 2450)
|
||||
l1, l2 = LineString([(0, 2400), (0, 2450)]), LineString([(5, 2400), (5, 2450)])
|
||||
eins = chunk_payload(0, 0, land=[], surfaces=[], carriageway=[(a, "gasse"), (b, "gasse")],
|
||||
eins = chunk_payload(0, 0, land=[], surfaces=[], carriageway=[a, b],
|
||||
curb=[l1, l2], sidewalk=[a], markings=[(a, "zebra"), (b, "zebra")],
|
||||
lots=[a, b], bridges=[], edges=[], buildings=[], palms=[])
|
||||
zwei = chunk_payload(0, 0, land=[], surfaces=[], carriageway=[(b, "gasse"), (a, "gasse")],
|
||||
zwei = chunk_payload(0, 0, land=[], surfaces=[], carriageway=[b, a],
|
||||
curb=[l2, l1], sidewalk=[a], markings=[(b, "zebra"), (a, "zebra")],
|
||||
lots=[b, a], bridges=[], edges=[], buildings=[], palms=[])
|
||||
assert eins == zwei
|
||||
|
||||
@@ -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": [],
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user