fix(extract): Sperrflächen auch aus Zufahrtsflächen ausschneiden und davor warnen
Zufahrtsflächen (highway=service) wurden bisher ungeschnitten ausgegeben und nicht auf
Überschneidung mit Sperrflächen geprüft. Am echten Stand überlappte eine Zufahrt die
Sperrfläche "tribuene" um 42,17 m² ohne Schnitt und ohne Warnung. build_layout wendet
difference(blocked) jetzt auch auf Zufahrten an, die Warnschleife prüft Wege und
Zufahrten getrennt ("Parkweg schneidet ..." / "Zufahrt schneidet ...").
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
26aafbbbd5
commit
d756eccd77
2 files changed
+22
-4
No files matched your search
@@ -137,3 +137,12 @@ def test_service_ways_become_six_metre_service_surfaces():
|
||||
(service,) = result.service
|
||||
assert service.contains(Point(1100, 1042.9)) and not service.contains(Point(1100, 1043.1))
|
||||
assert result.paths == []
|
||||
|
||||
|
||||
def test_keepouts_cut_service_surfaces_and_warn():
|
||||
keepout = Keepout("ort", (1100.0, 1100.0), 0.0, (-10.0, 10.0, -10.0, 10.0)) # Welt x 1090–1110, y 1090–1110
|
||||
result = layout([way({"highway": "service"}, (30, 50), (70, 50))], # Welt x 1080–1120, y 1100
|
||||
keepouts=[keepout])
|
||||
hole = keepout_polygon(keepout)
|
||||
assert result.service and all(poly.intersection(hole).area < 1e-6 for poly in result.service)
|
||||
assert result.warnings == ["Zufahrt schneidet die Sperrfläche ort"]
|
||||
Reference in new issue
Block a user