@@ -43,7 +43,7 @@ getexterior(t::AbstractPolygonTrait, geom) = getring(t, geom, 1)
4343nhole(t:: AbstractPolygonTrait , geom) = nring(t, geom) - 1
4444gethole(t:: AbstractPolygonTrait , geom) = (getgeom(t, geom, i) for i in 2 : ngeom(t, geom))
4545gethole(t:: AbstractPolygonTrait , geom, i) = getring(t, geom, i + 1 )
46- npoint(t:: AbstractPolygonTrait , geom) = sum(npoint(p) for p in getring(t, geom))
46+ npoint(t:: AbstractPolygonTrait , geom) = sum(npoint(p) for p in getring(t, geom); init = 0 )
4747getpoint(t:: AbstractPolygonTrait , geom) = flatten((p for p in getpoint(r)) for r in getring(t, geom))
4848
4949# # MultiPoint
@@ -55,16 +55,16 @@ getpoint(t::AbstractMultiPointTrait, geom, i) = getgeom(t, geom, i)
5555nlinestring(t:: AbstractMultiCurveTrait , geom) = ngeom(t, geom)
5656getlinestring(t:: AbstractMultiCurveTrait , geom) = getgeom(t, geom)
5757getlinestring(t:: AbstractMultiCurveTrait , geom, i) = getgeom(t, geom, i)
58- npoint(t:: AbstractMultiCurveTrait , geom) = sum(npoint(ls) for ls in getgeom(t, geom))
58+ npoint(t:: AbstractMultiCurveTrait , geom) = sum(npoint(ls) for ls in getgeom(t, geom); init = 0 )
5959getpoint(t:: AbstractMultiCurveTrait , geom) = flatten((p for p in getpoint(ls)) for ls in getgeom(t, geom))
6060
6161# # MultiPolygon
6262npolygon(t:: AbstractMultiPolygonTrait , geom) = ngeom(t, geom)
6363getpolygon(t:: AbstractMultiPolygonTrait , geom) = getgeom(t, geom)
6464getpolygon(t:: AbstractMultiPolygonTrait , geom, i) = getgeom(t, geom, i)
65- nring(t:: AbstractMultiPolygonTrait , geom) = sum(nring(p) for p in getpolygon(t, geom))
65+ nring(t:: AbstractMultiPolygonTrait , geom) = sum(nring(p):: Int for p in getpolygon(t, geom); init = 0 )
6666getring(t:: AbstractMultiPolygonTrait , geom) = flatten((r for r in getring(p)) for p in getpolygon(t, geom))
67- npoint(t:: AbstractMultiPolygonTrait , geom) = sum(npoint(r) for r in getring(t, geom))
67+ npoint(t:: AbstractMultiPolygonTrait , geom) = sum(npoint(r):: Int for r in getring(t, geom); init = 0 )
6868getpoint(t:: AbstractMultiPolygonTrait , geom) = flatten((p for p in getpoint(r)) for r in getring(t, geom))
6969
7070# # Surface
@@ -130,6 +130,7 @@ function calc_extent(t::AbstractPointTrait, geom)
130130 end
131131end
132132function calc_extent(t:: AbstractGeometryTrait , geom)
133+ isempty(t, geom) && return nothing
133134 points = getpoint(t, geom)
134135 X = extrema(p -> x(p), points)
135136 Y = extrema(p -> y(p), points)
0 commit comments