Class: Mormon::OSM::Router

Inherits:
Object
  • Object
show all
Defined in:
lib/mormon/osm_router.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loader, options = {}) ⇒ Router

Returns a new instance of Router.



148
149
150
151
152
153
154
# File 'lib/mormon/osm_router.rb', line 148

def initialize(loader, options = {})
  @loader = loader
  @options = options

  algorithm = @options.delete(:algorithm) || :astar
  @algorithm_class = "Mormon::OSM::Algorithm::#{algorithm.to_s.capitalize}".constantize
end

Instance Attribute Details

#loaderObject (readonly)

Returns the value of attribute loader.



146
147
148
# File 'lib/mormon/osm_router.rb', line 146

def loader
  @loader
end

Instance Method Details

#find_route(node_start, node_end, transport) ⇒ Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/mormon/osm_router.rb', line 156

def find_route(node_start, node_end, transport)
  algorithm = @algorithm_class.new(self, @options)

  result, nodes = algorithm.route(node_start.to_i, node_end.to_i, transport.to_sym)

  return [result,[]] if result != 'success'

  nodes.map! do |node|
    data = @loader.nodes[node.to_s]
    [data[:lat], data[:lon]]
  end

  [result, nodes]
end