pszufe / OpenStreetMapX.jl

OpenStreetMap (*.osm) support for Julia 1.0 and up
MIT License
118 stars 24 forks source link

The version 0.4.0 fails to open some PBF files ERROR: UndefVarError: `Relation_MemberType` not defined #75

Closed pszufe closed 8 months ago

pszufe commented 8 months ago

Dear @blegat,

I noted that the following code works (obviously after taking some time to execute):

Pkg.add(name="OpenStreetMapX", version="0.3.4")
using OpenStreetMapX
f = download("https://download.geofabrik.de/north-america/us/tennessee-latest.osm.pbf")
mv(f, "Tennessee.pbf")
md = get_map_data("Tennessee.pbf"; use_cache=false, only_intersections=false);

However, the same code with the new PBF support fails - looks like some type is missing:

Pkg.add(name="OpenStreetMapX", version="0.4.0")
using OpenStreetMapX
md = get_map_data("Tennessee.pbf"; use_cache=false, only_intersections=false);

The stack trace is the following:

ERROR: UndefVarError: `Relation_MemberType` not defined
Stacktrace:
  [1] process_element(osm::OpenStreetMapX.OSMData, pbf_relation::OpenStreetMapX.OSMPBF.Relation, table::Vector{String}, lat_offset::Int64, lon_offset::Int64, granularity::Int32)
    @ OpenStreetMapX c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\pbf.jl:109
  [2] process_elements(osm::OpenStreetMapX.OSMData, elements::Vector{OpenStreetMapX.OSMPBF.Relation}, table::Vector{String}, lat_offset::Int64, lon_offset::Int64, granularity::Int32)
    @ OpenStreetMapX c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\pbf.jl:127
  [3] process_block(osm::OpenStreetMapX.OSMData, block::OpenStreetMapX.OSMPBF.PrimitiveBlock)
    @ OpenStreetMapX c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\pbf.jl:139
  [4] (::OpenStreetMapX.var"#18#19"{OpenStreetMapX.OSMData})(io::IOStream)
    @ OpenStreetMapX c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\pbf.jl:150
  [5] open(f::OpenStreetMapX.var"#18#19"{OpenStreetMapX.OSMData}, args::String; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base .\io.jl:395
  [6] open
    @ .\io.jl:392 [inlined]
  [7] parsePBF
    @ c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\pbf.jl:147 [inlined]
  [8] get_map_data(filepath::String, filename::Nothing; road_levels::Set{Int64}, use_cache::Bool, only_intersections::Bool, trim_to_connected_graph::Bool)
    @ OpenStreetMapX c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\parseMap.jl:101
  [9] get_map_data
    @ c:\JuliaPkg\Julia-1.9.3\packages\OpenStreetMapX\pyj45\src\parseMap.jl:85 [inlined]
 [10] top-level scope
    @ myfile\mapviz.jl:101