improve importpoc some more

This commit is contained in:
Laura Klünder 2024-12-28 17:58:28 +01:00
parent ec057be7c1
commit 86a4535111
3 changed files with 7 additions and 6 deletions

View file

@ -78,7 +78,7 @@ class Command(BaseCommand):
# build resulting object # build resulting object
altitude_quest = True altitude_quest = True
if not result: if not result:
result = RangingBeacon(import_tag=import_tag, beacon_type=RangingBeacon.BeaconType.EVENT_WIFI) result = RangingBeacon(import_tag=import_tag, beacon_type=RangingBeacon.BeaconType.DECT)
else: else:
if result.space == new_space and distance(unwrap_geom(result.geometry), point) < 0.03: if result.space == new_space and distance(unwrap_geom(result.geometry), point) < 0.03:
continue continue

View file

@ -553,7 +553,7 @@ class RangingBeacon(SpaceGeometryMixin, models.Model):
else: else:
title = f'#{self.pk}' title = f'#{self.pk}'
if self.addresses: if self.addresses:
ssids = self.addresses[0] + (', …' if len(self.adresses) > 1 else '') ssids = self.addresses[0] + (', …' if len(self.addresses) > 1 else '')
title += f' ({ssids})' title += f' ({ssids})'
if self.comment: if self.comment:
title += f' ({self.comment})' title += f' ({self.comment})'

View file

@ -20,16 +20,17 @@ class PointImportHelper:
if space.geometry.intersects(point)] if space.geometry.intersects(point)]
if not possible_spaces: if not possible_spaces:
possible_spaces = [space for space in self.spaces_for_level[level_id] possible_spaces = [space for space in self.spaces_for_level[level_id]
if distance(unwrap_geom(space.geometry), point) < 0.3] if distance(unwrap_geom(space.geometry), point) < 1.5]
if len(possible_spaces) == 1: if len(possible_spaces) == 1:
new_space = possible_spaces[0] new_space = possible_spaces[0]
the_distance = distance(unwrap_geom(new_space.geometry), point) the_distance = distance(unwrap_geom(new_space.geometry), point)
print(f"SUCCESS: {name} is {the_distance:.02f}m away from {new_space.title}") print(f"SUCCESS: {name} is {the_distance:.02f}m away from {new_space.title}")
elif len(possible_spaces) == 2: elif len(possible_spaces) > 1:
new_space = min(possible_spaces, key=lambda s: distance(unwrap_geom(s.geometry), point)) new_space = min(possible_spaces, key=lambda s: distance(unwrap_geom(s.geometry), point))
print(f"WARNING: {name} could be in multiple spaces ({possible_spaces}, picking {new_space}...") print(f"WARNING: {name} could be in multiple spaces ({possible_spaces}, picking {new_space}, "
f"which is {distance(unwrap_geom(new_space.geometry), point)}m away...")
else: else:
print(f"ERROR: {name} is not within any space ({point})") print(f"ERROR: {name} is not within any space on level {level_id} ({point})")
return None, None return None, None
# move point into space if needed # move point into space if needed