在android谷歌地图中计算多个latlng的中心点?

时间:2015-01-02 04:53:29

标签: android

我正在寻找一种计算几个纬度 - 经度坐标之间中心的解决方案(例如,简单地将地图居中到谷地图多边形的中心)。我将latlang坐标存储到arraylist中。

3 个答案:

答案 0 :(得分:2)

使用LatLngBounds.Builder

创建实例后,请继续向其添加LatLng。最后build(),然后在生成的getCenter()对象上调用LatLngBounds

您只能向构建器添加位置,它不能减去。

答案 1 :(得分:1)

这个对我有用

   LatLng getCenterPointInPolygon(Polygon polygon) {
    LatLngBounds.Builder latLngBounds = LatLngBounds.builder();
    for (LatLng latLng : polygon.getPoints()) {
        latLngBounds.include(latLng);
    }
    return latLngBounds.build().getCenter();
}

答案 2 :(得分:0)

基本3D微积分。构建一个接收点的函数,并输出到地图上每个位置的距离总和。然后,使用微积分找到函数达到最小值的点。那是中心。