From 75f85daffa6b5951f994b91ffbdb45402aa6ccaa Mon Sep 17 00:00:00 2001 From: Rafael Schouten Date: Mon, 10 Jun 2024 23:14:35 +0200 Subject: [PATCH 1/2] add convert for GeometryCollection --- src/geointerface.jl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/geointerface.jl b/src/geointerface.jl index cfe1e9a3..408fb8a8 100644 --- a/src/geointerface.jl +++ b/src/geointerface.jl @@ -10,6 +10,7 @@ const lookup_method = Dict{DataType,Function}( GeoInterface.MultiLineStringTrait => createmultilinestring, GeoInterface.PolygonTrait => createpolygon, GeoInterface.MultiPolygonTrait => createmultipolygon, + GeoInterface.MultiPolygonTrait => createmultipolygon, ) let pointtypes = (wkbPoint, wkbPoint25D, wkbPointM, wkbPointZM), @@ -351,6 +352,19 @@ let pointtypes = (wkbPoint, wkbPoint25D, wkbPointM, wkbPointZM), ) return f(GeoInterface.coordinates(geom)) end + function GeoInterface.convert( + ::Type{T}, + type::GeoInterface.GeometryCollectionTrait, + geom, + ) where {T<:IGeometry} + collection = creategeomcollection() + map(GeoInterface.getgeom(geom)) do g + trait = GeoInterface.geomtrait(g) + t = geointerface_geomtype(trait) + addgeom!(collection, GeoInterface.convert(t, trait, g)) + end + return collection + end function GeoInterface.geomtrait( geom::Union{map(T -> AbstractGeometry{T}, pointtypes)...}, From 943bdcab08a714abde14ecd0601be0743ae77ce1 Mon Sep 17 00:00:00 2001 From: Rafael Schouten Date: Mon, 10 Jun 2024 23:15:36 +0200 Subject: [PATCH 2/2] cleanup --- src/geointerface.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/geointerface.jl b/src/geointerface.jl index 408fb8a8..666e1e2c 100644 --- a/src/geointerface.jl +++ b/src/geointerface.jl @@ -10,7 +10,6 @@ const lookup_method = Dict{DataType,Function}( GeoInterface.MultiLineStringTrait => createmultilinestring, GeoInterface.PolygonTrait => createpolygon, GeoInterface.MultiPolygonTrait => createmultipolygon, - GeoInterface.MultiPolygonTrait => createmultipolygon, ) let pointtypes = (wkbPoint, wkbPoint25D, wkbPointM, wkbPointZM),