Skip to content

Commit 2d5671b

Browse files
committed
resolve 8 method ambiguities
As found by Aqua. These come from GeoInterface fallbacks, and are all similar to: ``` Ambiguity #4 ngeom(::GeoInterface.AbstractGeometryTrait, geom::LibGEOS.Polygon) @ LibGEOS D:\visser_mn\.julia\dev\LibGEOS\src\geo_interface.jl:26 ngeom(::GeoInterface.AbstractPointTrait, geom) @ GeoInterface d:\visser_mn\.julia\packages\GeoInterface\J298z\src\fallbacks.jl:22 Possible fix, define ngeom(::GeoInterface.AbstractPointTrait, ::LibGEOS.Polygon) ```
1 parent 413ea33 commit 2d5671b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/geo_interface.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,38 @@ GeoInterface.geomtrait(geom::PreparedGeometry) = GeoInterface.geomtrait(geom.own
1212

1313
GeoInterface.ngeom(::AbstractGeometryTrait, geom::AbstractGeometry) =
1414
isEmpty(geom.ptr) ? 0 : numGeometries(geom.ptr)
15+
GeoInterface.ngeom(::AbstractPointTrait, geom::AbstractGeometry) = 0
16+
1517
function GeoInterface.getgeom(::AbstractGeometryTrait, geom::AbstractGeometry, i)
1618
clone = getGeometry(geom.ptr, i)
1719
id = geomTypeId(clone) + 1
1820
0 < id <= length(geomtypes) || error("Unknown geometry type id $id")
1921
geomtypes[id](clone)
2022
end
23+
24+
GeoInterface.getgeom(::AbstractPointTrait, geom::AbstractGeometry, i) = nothing
2125
GeoInterface.ngeom(::AbstractGeometryTrait, geom::Union{LineString,LinearRing}) =
2226
numPoints(geom.ptr)
27+
GeoInterface.ngeom(t::AbstractPointTrait, geom::Union{LineString,LinearRing}) = 0
2328
GeoInterface.getgeom(::AbstractGeometryTrait, geom::Union{LineString,LinearRing}, i) =
2429
Point(getPoint(geom.ptr, i))
30+
GeoInterface.getgeom(::AbstractPointTrait, geom::Union{LineString,LinearRing}, i) = nothing
2531

2632
GeoInterface.ngeom(::AbstractGeometryTrait, geom::Polygon) = numInteriorRings(geom.ptr) + 1
33+
GeoInterface.ngeom(::AbstractPointTrait, geom::Polygon) = 0
2734
function GeoInterface.getgeom(::AbstractGeometryTrait, geom::Polygon, i)
2835
if i == 1
2936
LinearRing(exteriorRing(geom.ptr))
3037
else
3138
LinearRing(interiorRing(geom.ptr, i - 1))
3239
end
3340
end
41+
GeoInterface.getgeom(::AbstractPointTrait, geom::Polygon, i) = nothing
3442

3543
GeoInterface.ngeom(t::AbstractGeometryTrait, geom::PreparedGeometry) = GeoInterface.ngeom(t, geom.ownedby)
44+
GeoInterface.ngeom(t::AbstractPointTrait, geom::PreparedGeometry) = 0
3645
GeoInterface.getgeom(t::AbstractGeometryTrait, geom::PreparedGeometry, i) = GeoInterface.getgeom(t, geom.ownedby, i)
46+
GeoInterface.getgeom(t::AbstractPointTrait, geom::PreparedGeometry, i) = 0
3747

3848
GeoInterface.ncoord(::AbstractGeometryTrait, geom::AbstractGeometry) =
3949
isEmpty(geom.ptr) ? 0 : getCoordinateDimension(geom.ptr)

0 commit comments

Comments
 (0)