Skip to content

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

@memeLordo

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions