-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
In #149 and v0.8.0, LibGEOS geometry operations now work on wrapped geometries. However, the create... functions still return a bare GEOS pointer:
julia> using LibGEOS
julia> LibGEOS.createLineString([[1.1, 2.2], [3.3, 4.4]])
Ptr{Nothing} @0x0000...
julia> LibGEOS.createPoint([[1.1, 2.2]])
Ptr{Nothing} @0x0000....
This makes previously-working code like this stop working with a MethodError:
MethodError: no method matching geointerface_geomtype(::Nothing)
Closest candidates are:
geointerface_geomtype(!Matched::GeoInterface.PointTrait) at ~/.julia/packages/LibGEOS/oez93/src/geo_interface.jl:3
geointerface_geomtype(!Matched::GeoInterface.MultiPointTrait) at ~/.julia/packages/LibGEOS/oez93/src/geo_interface.jl:4
geointerface_geomtype(!Matched::GeoInterface.LineStringTrait) at ~/.julia/packages/LibGEOS/oez93/src/geo_interface.jl:5
The PR description for #149 mentions that this error can occur, but implies that removing .ptr should solve the problem. However, in the code linked above, there is no use of .ptr. Switching to use LibGEOS.{Point,LineString} instead of LibGEOS.create{Point,LineString} solves the problem. I'm not sure if this is a bug in LibGEOS.jl or if the create... functions are internal, but as far as I can tell the documentation doesn't say not to use them.
Metadata
Metadata
Assignees
Labels
No labels