7

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

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

有小费吗?谢谢

4

1 回答 1

5

以前从未使用过 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}
于 2010-10-21T06:04:09.537 回答