@@ -102,15 +102,15 @@ end
102102"""
103103 subtrait(t::AbstractGeometryTrait)
104104
105- Gets the expected (sub)trait for subgeometries (retrieved with [`getgeom`](@ref)) of trait `t`.
105+ Gets the expected, possible abstract, (sub)trait for subgeometries (retrieved with [`getgeom`](@ref)) of trait `t`.
106106This follows the [Type hierarchy](@ref) of Simple Features.
107107
108108# Examples
109109```jldoctest; setup = :(using GeoInterface)
110110julia> GeoInterface.subtrait(GeoInterface.LineStringTrait())
111111GeoInterface.PointTrait
112- julia> GeoInterface.subtrait(GeoInterface.MultiPointTrait ())
113- GeoInterface.PointTrait
112+ julia> GeoInterface.subtrait(GeoInterface.PolygonTrait ()) # Any of LineStringTrait, LineTrait, LinearRingTrait
113+ GeoInterface.AbstractLineStringTrait
114114```
115115```jldoctest; setup = :(using GeoInterface)
116116# `nothing` is returned when there's no subtrait or when it's not known beforehand
@@ -120,10 +120,15 @@ julia> isnothing(GeoInterface.subtrait(GeoInterface.GeometryCollectionTrait()))
120120true
121121```
122122"""
123- subtrait (:: PointTrait ) = nothing
124- subtrait (:: LineStringTrait ) = PointTrait
125- subtrait (:: PolygonTrait ) = LineStringTrait
126- subtrait (:: MultiPointTrait ) = PointTrait
127- subtrait (:: MultiLineStringTrait ) = LineStringTrait
128- subtrait (:: MultiPolygonTrait ) = PolygonTrait
129- subtrait (:: GeometryCollectionTrait ) = nothing
123+ subtrait (:: AbstractPointTrait ) = nothing
124+ subtrait (:: AbstractCurveTrait ) = AbstractPointTrait
125+ subtrait (:: AbstractCurvePolygonTrait ) = AbstractCurveTrait
126+ subtrait (:: AbstractPolygonTrait ) = AbstractLineStringTrait
127+ subtrait (:: AbstractPolyHedralSurfaceTrait ) = AbstractPolygonTrait
128+ subtrait (:: TINTrait ) = TriangleTrait
129+ subtrait (:: AbstractMultiPointTrait ) = AbstractPointTrait
130+ subtrait (:: AbstractMultiLineStringTrait ) = AbstractLineStringTrait
131+ subtrait (:: AbstractMultiPolygonTrait ) = AbstractPolygonTrait
132+ subtrait (:: AbstractMultiSurfaceTrait ) = AbstractSurfaceTrait
133+ subtrait (:: AbstractGeometryCollectionTrait ) = nothing
134+ subtrait (:: AbstractGeometryTrait ) = nothing # fallback
0 commit comments