Skip to content

Commit

Permalink
chore: add rounding to geometry hashing
Browse files Browse the repository at this point in the history
  • Loading branch information
RaczeQ committed Jan 30, 2024
1 parent c66fe06 commit 565da9c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
5 changes: 3 additions & 2 deletions quackosm/pbf_file_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -630,9 +630,10 @@ def _get_oriented_geometry_filter(
double_iteration = itertools.chain(perimeter[:-1], perimeter)
for point in double_iteration:
if point == smallest_point:
new_coords.append(point)
new_coords.append((round(point[0], 7), round(point[1], 7)))
while len(new_coords) < len(perimeter):
new_coords.append(next(double_iteration))
next_point = next(double_iteration)
new_coords.append((round(next_point[0], 7), round(next_point[1], 7)))
break
return LinearRing(new_coords)
if isinstance(geometry, Polygon):
Expand Down
7 changes: 6 additions & 1 deletion tests/base/test_pbf_file_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,12 @@ def test_pbf_reader_proper_tags_reading(
)
def test_geometry_orienting(geometry: BaseGeometry):
"""Test if geometry orienting works properly."""
assert geometry.equals(PbfFileReader(geometry_filter=geometry)._get_oriented_geometry_filter())
oriented_geometry = cast(
BaseGeometry, PbfFileReader(geometry_filter=geometry)._get_oriented_geometry_filter()
)
intersection_area = geometry.intersection(oriented_geometry).area
iou = intersection_area / (geometry.area + oriented_geometry.area - intersection_area)
ut.assertAlmostEqual(iou, 1, delta=1e-4)


# Copyright (C) 2011 by Hong Minhee <http://dahlia.kr/>,
Expand Down

0 comments on commit 565da9c

Please sign in to comment.