Skip to content

Commit e74b291

Browse files
b4lkylebarron
andauthored
Fix scalar to geo for empty polygon (#846)
Co-authored-by: Kyle Barron <[email protected]>
1 parent 8fda9ab commit e74b291

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

rust/geoarrow/src/io/geo/scalar.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ pub fn line_string_to_geo<T: CoordNum>(
4343
/// Convert any Polygon to a [`geo::Polygon`].
4444
///
4545
/// Only the first two dimensions will be kept.
46-
pub fn polygon_to_geo<T: CoordNum>(polygon: &impl PolygonTrait<T = T>) -> geo::Polygon<T> {
47-
let exterior = line_string_to_geo(&polygon.exterior().unwrap());
46+
pub fn polygon_to_geo<T: CoordNum, P: PolygonTrait<T = T>>(polygon: &P) -> geo::Polygon<T> {
47+
let exterior = if let Some(exterior) = polygon.exterior() {
48+
line_string_to_geo(&exterior)
49+
} else {
50+
geo::LineString::new(vec![])
51+
};
4852
let interiors = polygon
4953
.interiors()
5054
.map(|interior| line_string_to_geo(&interior))

0 commit comments

Comments
 (0)