Skip to content

Commit 2bb7c82

Browse files
committed
Attempt to fix invalid way geometries
1 parent e5d7934 commit 2bb7c82

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2424
- Adds `riverbank`, `stream_end`, `dam`, `weir`, `waterfall`, and `pressurised`
2525
to the list of waterway features
2626
- Populates `nds` and `members` for deleted elements from the previous version
27+
- Attempt to fix invalid way geometries by buffering them (this will result in
28+
more way geometries for certain datasets)
2729

2830
### Fixed
2931

src/main/scala/vectorpipe/internal/package.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,16 @@ package object internal {
332332
}
333333
val geometry = geom match {
334334
case Some(g) if g.isValid => g
335+
case Some(g) if !g.isEmpty =>
336+
val buffered = g.buffer(0)
337+
338+
if (buffered.isValid) {
339+
logWarning(s"Invalid way geometry, fixed by buffering: $id@$version ($updated): $g)")
340+
buffered
341+
} else {
342+
logWarning(s"Invalid way geometry: $id@$version ($updated): $g)")
343+
null
344+
}
335345
case _ => null
336346
}
337347
new GenericRowWithSchema(Array(changeset, id, version, updated, geometry), BareElementSchema): Row

0 commit comments

Comments
 (0)