ruby-on-rails - 使用 geokit 或其他 ruby​​ gem 计算一系列地理坐标的中心

标签 ruby-on-rails ruby google-maps rubygems geokit

我使用 geokit 和 geokit-rails gem for rails 有一段时间了,但我还没有找到答案的一个问题是如何找到一组点的计算聚合中心。我知道如何计算两点之间的距离,但不会超过 2。

我的理由是,我在同一个城市中有一系列的点……一切都完美的城市会有一个我可以使用的中心,但有些城市,比如柏林没有一个完美的中心。他们有多个中心,我只想使用我数据库中的所有地点列表来计算特定分布的中心。还有其他人遇到过这个问题吗?

有什么建议吗?谢谢

最佳答案

之前从未使用过 Geokit,这个操作背后的数学原理相对容易自己实现。假设这些点由纬度和经度组成,您只需要所有点的平均纬度和平均经度。获得这两个值后,您就获得了中心点。

points = [[14, 19], [-5, 57], [23, -12]]
points.transpose.map{|c| c.inject{|a, b| a + b}.to_f / c.size}

同样,如果这些点是 Geokit::LatLng 对象而不是二维数组,您可以通过预先调用 #to_a 简单地映射它们的 lat 和 lng 值。

points.map(&:to_a).transpose.map{|c| c.inject{|a, b| a + b}.to_f / c.size}

关于ruby-on-rails - 使用 geokit 或其他 ruby​​ gem 计算一系列地理坐标的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3977058/

相关文章:

ruby-on-rails - Rails 5.1 Angular templateUrl

JavaScript 无法在 Rails 中运行

android - 自动显示谷歌地图标记的工具栏

javascript - Google map WatchPosition 无法正常工作

javascript - 如何修复 Google map 中的重叠标记错误

ruby-on-rails - Ajax 推送引擎

ruby-on-rails - Active Record - Where IN 有多列

ruby-on-rails - 为什么 rspec 找不到我不需要参数的路线?

ruby-on-rails - rails 3 : Update counter_cache only if published

ruby - 为什么不能在 Symbols 或 Fixnums 上定义单例方法?