Skip to content

Commit

Permalink
Merge 65cc38d into c79c20d
Browse files Browse the repository at this point in the history
  • Loading branch information
bartoszpankratz committed Apr 26, 2019
2 parents c79c20d + 65cc38d commit 15f170c
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/routing.jl
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,11 @@ end
### Create a Sparse Matrix for a given vector of weights ###

function create_weights_matrix(m::OpenStreetMapX.MapData,weights::Vector{Float64})
w = Dict{Tuple{Int,Int},Float64}()
sizehint!(w,length(weights))
w = SparseArrays.spzeros(length(m.v), length(m.v))
for (i,edge) in enumerate(m.e)
w[m.v[edge[1]],m.v[edge[2]]] = weights[i]
end
return SparseArrays.sparse(map(x->getfield.(collect(keys(w)), x),
fieldnames(eltype(collect(keys(w)))))...,
collect(values(w)),length(m.v),length(m.v))
w
end

### Get velocities matrix ###
Expand All @@ -102,11 +99,11 @@ function get_velocities(m::OpenStreetMapX.MapData,
class_speeds::Dict{Int,Float64} = OpenStreetMapX.SPEED_ROADS_URBAN)
@assert length(m.e) == length(m.w.nzval)
indices = [(m.v[i],m.v[j]) for (i,j) in m.e]
V = Array{Float64}(undef,length(m.e))
for i = 1:length(indices)
V[i] = class_speeds[m.class[i]]/3.6
V = SparseArrays.spzeros(length(m.v), length(m.v))
for (i,ind) in enumerate(indices)
V[ind[1],ind[2]] = class_speeds[m.class[i]]/3.6
end
return SparseArrays.sparse(map(i -> m.v[i[1]], m.e), map(i -> m.v[i[2]], m.e),V)
V
end

### Extract route from Dijkstra results object ###
Expand Down

0 comments on commit 15f170c

Please sign in to comment.