【发布时间】:2013-04-23 08:04:51
【问题描述】:
我有一个来自谷歌地图的“地点”对象,它有一组坐标,代表给定位置的边界框,比如伦敦。每组坐标都有一个纬度和经度。
我已经编写了以下代码来查找中心点,但我不确定它是否确实产生了中心点。如果多边形有 5 个点而不是 4 个呢?此外,这是否可以以更有效的方式完成,操作更少?
function average(array) {
// Add together and then divide by the length
return _.reduce(array, function (sum, num) {
return sum + num;
}, 0) / array.length;
}
// I have a two-dimensional array that I want to get the average of
var coords = [
[ -1.2, 5.1 ],
[ -1.3, 5.2 ],
[ -1.8, 5.9 ],
[ -1.9, 5.8 ]
]
// So I get the first column
var lats = coords.map(function (coord) {
return coord[0];
})
// Then the second
var longs = coords.map(function (coord) {
return coord[1];
})
// And average each column out
console.log([average(lats), average(longs)])
【问题讨论】:
-
我建议获取多边形的边界,然后使用边界的中心。
-
@geocodezip 这就是我所拥有的,我相信? “边界框”。
标签: javascript google-maps math geolocation geometry