我正在使用 Geokit 来计算两个位置对象之间的距离。http://geokit.rubyforge.org/
我的问题是,如果我有一系列位置,那么通过它们来计算总距离旅行的最佳算法是什么?起初我认为 Enumerable#inject 是要走的路,传递 N-1 个位置对象之间行进距离的备忘录,但是没有办法存储您已经在实际数组中检查的位置对象的状态.
这将需要数组的大小、我们当前所在的索引以及注入的行为。理想情况下,您可以执行以下操作:
locations = [Geokit::LatLng, Geokit::LatLng, ...]
locations.inject(0) do |memo, location|
memo += location.distance_from(previous_location)
end
但是,在这种情况下,previous_location 是未定义的。
想法?