last fallback: level base_altitude
This commit is contained in:
parent
5cf0157f50
commit
faec957984
1 changed files with 10 additions and 8 deletions
|
@ -198,7 +198,6 @@ class AltitudeArea(LevelGeometryMixin, models.Model):
|
||||||
area.tmpid = i
|
area.tmpid = i
|
||||||
for area in areas:
|
for area in areas:
|
||||||
area.connected_to = set(area.tmpid for area in area.connected_to)
|
area.connected_to = set(area.tmpid for area in area.connected_to)
|
||||||
print(space_areas.keys())
|
|
||||||
for space in space_areas.keys():
|
for space in space_areas.keys():
|
||||||
space_areas[space] = set(area.tmpid for area in space_areas[space])
|
space_areas[space] = set(area.tmpid for area in space_areas[space])
|
||||||
|
|
||||||
|
@ -247,19 +246,22 @@ class AltitudeArea(LevelGeometryMixin, models.Model):
|
||||||
|
|
||||||
# remaining areas which belong to a room that has an altitude somewhere
|
# remaining areas which belong to a room that has an altitude somewhere
|
||||||
for contained_areas in space_areas.values():
|
for contained_areas in space_areas.values():
|
||||||
contained_areas_with_altitudes = contained_areas - areas_without_altitude
|
contained_areas_with_altitude = contained_areas - areas_without_altitude
|
||||||
contained_areas_without_altitudes = contained_areas - contained_areas_with_altitudes
|
contained_areas_without_altitude = contained_areas - contained_areas_with_altitude
|
||||||
if contained_areas_with_altitudes and contained_areas_without_altitudes:
|
if contained_areas_with_altitude and contained_areas_without_altitude:
|
||||||
altitude_areas = {}
|
altitude_areas = {}
|
||||||
for tmpid in contained_areas_with_altitudes:
|
for tmpid in contained_areas_with_altitude:
|
||||||
area = areas[tmpid]
|
area = areas[tmpid]
|
||||||
altitude_areas.setdefault(area.altitude, []).append(area.geometry)
|
altitude_areas.setdefault(area.altitude, []).append(area.geometry)
|
||||||
|
|
||||||
for altitude in altitude_areas.keys():
|
for altitude in altitude_areas.keys():
|
||||||
altitude_areas[altitude] = cascaded_union(altitude_areas[altitude])
|
altitude_areas[altitude] = cascaded_union(altitude_areas[altitude])
|
||||||
for tmpid in contained_areas_without_altitudes:
|
for tmpid in contained_areas_without_altitude:
|
||||||
area = areas[tmpid]
|
area = areas[tmpid]
|
||||||
area.altitude = min(altitude_areas.items(), key=lambda aa: aa[1].distance(area.geometry))[0]
|
area.altitude = min(altitude_areas.items(), key=lambda aa: aa[1].distance(area.geometry))[0]
|
||||||
areas_without_altitude.difference_update(contained_areas_without_altitudes)
|
areas_without_altitude.difference_update(contained_areas_without_altitude)
|
||||||
|
|
||||||
print(len(areas_without_altitude))
|
# last fallback: level base_altitude
|
||||||
|
for tmpid in areas_without_altitude:
|
||||||
|
area = areas[tmpid]
|
||||||
|
area.altitude = area.level.base_altitude
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue