Skip to content

Commit d0b0aa8

Browse files
authored
Performance tweaks for rings and holes (#197)
1 parent feb0055 commit d0b0aa8

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/geo_interface.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ GeoInterface.ngeom(t::AbstractGeometryTrait, geom::PreparedGeometry) =
3131
GeoInterface.ngeom(::AbstractPointTrait, geom::Point) = 0
3232
GeoInterface.ngeom(::AbstractPointTrait, geom::PreparedGeometry) = 0
3333

34+
GI.getexterior(::AbstractPolygonTrait, geom::Polygon) = exteriorRing(geom)
35+
GI.gethole(::AbstractPolygonTrait, geom::Polygon, n) = interiorRing(geom, n)
36+
3437
function GeoInterface.getgeom(
3538
::AbstractGeometryCollectionTrait,
3639
geom::AbstractMultiGeometry,
@@ -51,9 +54,9 @@ GeoInterface.getgeom(
5154
GeoInterface.getgeom(t::AbstractPointTrait, geom::PreparedGeometry) = nothing
5255
function GeoInterface.getgeom(::PolygonTrait, geom::Polygon, i::Int)
5356
if i == 1
54-
LinearRing(exteriorRing(geom))
57+
exteriorRing(geom)
5558
else
56-
LinearRing(interiorRing(geom, i - 1))
59+
interiorRing(geom, i - 1)
5760
end
5861
end
5962
GeoInterface.getgeom(t::AbstractGeometryTrait, geom::PreparedGeometry, i) =

0 commit comments

Comments
 (0)