Skip to content

LibGEOS: n=1 is out of bounds for LineString with numPoints=0 #219

Description

@memeLordo

Hello!
When I was testing my Julia project with this library and GLMakie, I've encoutered this issue.

I have a setup of two polygons: one is static and one is dynamic.

Image

The dynamic one has the intersection with the static one. Whenever I try to cover the whole object, I get this repeated error (otherwise it works fine):

Image

Error in callback:
LibGEOS: n=1 is out of bounds for LineString with numPoints=0
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] getPoint(obj::LibGEOS.LinearRing, n::Int64, context::LibGEOS.GEOSContext)
    @ LibGEOS ~/.julia/packages/LibGEOS/DzS5k/src/geos_functions.jl:1538
  [3] getPoint
    @ ~/.julia/packages/LibGEOS/DzS5k/src/geos_functions.jl:1537 [inlined]
  [4] getgeom
    @ ~/.julia/packages/LibGEOS/DzS5k/src/geo_interface.jl:50 [inlined]
  [5] getgeom
    @ ~/.julia/packages/GeoInterface/4tyIo/src/interface.jl:381 [inlined]
  [6] convert(::Type{GeometryBasics.LineString}, type::GeoInterface.LineStringTrait, geom::LibGEOS.LinearRing)
    @ GeometryBasics ~/.julia/packages/GeometryBasics/79wKA/src/geointerface.jl:114
  [7] convert(::Type{GeometryBasics.Polygon}, type::GeoInterface.PolygonTrait, geom::LibGEOS.Polygon)
    @ GeometryBasics ~/.julia/packages/GeometryBasics/79wKA/src/geointerface.jl:128
  [8] convert(package::Module, geom::LibGEOS.Polygon)
    @ GeoInterface ~/.julia/packages/GeoInterface/4tyIo/src/fallbacks.jl:152
  [9] _convert_arguments(t::Type, geom::LibGEOS.Polygon)
    @ GeoInterfaceMakie ~/.julia/packages/GeoInterfaceMakie/vxpgB/src/GeoInterfaceMakie.jl:23
 [10] #convert_arguments#1
    @ ~/.julia/packages/GeoInterfaceMakie/vxpgB/src/GeoInterfaceMakie.jl:91 [inlined]
 [11] convert_arguments(p::Type{Poly}, geom::LibGEOS.Polygon)
    @ LibGEOSMakieExt ~/.julia/packages/GeoInterfaceMakie/vxpgB/src/GeoInterfaceMakie.jl:90
 [12] (::Makie.var"#306#307"{UnionAll, Tuple{Observable{GeometryBasics.Polygon{2, Float64}}}})(kw::Vector{Pair{Symbol, Any}}, args::LibGEOS.Polygon)
    @ Makie ~/.julia/packages/Makie/ux0Te/src/interfaces.jl:176
 [13] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
    @ Base ./essentials.jl:1055
 [14] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:1052
 [15] (::Observables.OnAny)(value::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
 [16] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [17] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [18] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [19] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
 [20] (::Observables.MapCallback)(value::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:436
--- the above 5 lines are repeated 2 more times ---
 [31] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [32] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [33] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [34] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
 [35] (::Makie.var"#2024#2039"{Slider, Observable{Any}})(i::Int64, dragging::Bool)
    @ Makie ~/.julia/packages/Makie/ux0Te/src/makielayout/blocks/slider.jl:68
 [36] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
    @ Base ./essentials.jl:1055
 [37] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:1052
 [38] (::Observables.OnAny)(value::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:420
 [39] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [40] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [41] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [42] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
 [43] (::Makie.var"#2028#2043"{Slider, Observable{Float64}, Observable{Bool}, Observable{Int64}, Observable{Vector{Point{2, Float32}}}, Observable{Any}})(event::MouseEvent)
    @ Makie ~/.julia/packages/Makie/ux0Te/src/makielayout/blocks/slider.jl:116
 [44] (::Makie.var"#1501#1502"{Makie.var"#2028#2043"{Slider, Observable{Float64}, Observable{Bool}, Observable{Int64}, Observable{Vector{Point{2, Float32}}}, Observable{Any}}})(event::MouseEvent)
    @ Makie ~/.julia/packages/Makie/ux0Te/src/makielayout/mousestatemachine.jl:94
 [45] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [46] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [47] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [48] setindex!
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123 [inlined]
 [49] (::Makie.var"#1543#1545"{Scene, Makie.var"#is_mouse_over_relevant_area#1542"{Scene, Observable{GeometryBasics.HyperRectangle{2, Float32}}}, Base.RefValue{Float64}, Base.RefValue{Bool}, Float64, Base.RefValue{Point{2, Float64}}, Base.RefValue{Bool}, Base.RefValue{Union{Nothing, Makie.Mouse.Button}}, Base.RefValue{Bool}, Base.RefValue{Point{2, Float32}}, Base.RefValue{Point{2, Float64}}, Base.RefValue{Makie.Mouse.Action}, Observable{MouseEvent}, Module})(mp::Tuple{Float64, Float64})
    @ Makie ~/.julia/packages/Makie/ux0Te/src/makielayout/mousestatemachine.jl:229
 [50] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [51] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [52] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [53] setindex!(observable::Observable, val::Any)
    @ Observables ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123
 [54] (::GLMakie.MousePositionUpdater)(::Makie.TickState)
    @ GLMakie ~/.julia/packages/GLMakie/87u59/src/events.jl:6
 [55] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [56] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [57] notify
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:206 [inlined]
 [58] setindex!
    @ ~/.julia/packages/Observables/YdEbO/src/Observables.jl:123 [inlined]
 [59] pollevents(screen::GLMakie.Screen{GLFW.Window}, frame_state::Makie.TickState)
    @ GLMakie ~/.julia/packages/GLMakie/87u59/src/screen.jl:547
 [60] on_demand_renderloop(screen::GLMakie.Screen{GLFW.Window})
    @ GLMakie ~/.julia/packages/GLMakie/87u59/src/screen.jl:1033
 [61] renderloop(screen::GLMakie.Screen{GLFW.Window})
    @ GLMakie ~/.julia/packages/GLMakie/87u59/src/screen.jl:1061

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions