如何根据中心和半径获取Google地图中圆圈的LatLngBounds?

时间:2016-05-18 15:24:13

标签: android google-maps android-studio coordinates geometry

如何获得具有给定中心和半径的圆的东北和西南坐标?我找不到任何解决方案。目前,Circle对象没有以前的getLatLngBounds()和getBounds()方法。

2 个答案:

答案 0 :(得分:6)

您可以使用SphericalUtil.computeOffset方法 Google Maps Android API Utility Library。要使用它,您需要具有以下依赖关系build.gradle

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.4+'
}

然后,您可以计算圆圈的东北和西南坐标:

double radius = 104.52;
LatLng center = new LatLng(40.22861, -3.95567);

LatLng targetNorthEast = SphericalUtil.computeOffset(center, radius * Math.sqrt(2), 45);
LatLng targetSouthWest = SphericalUtil.computeOffset(center, radius * Math.sqrt(2), 225);

答案 1 :(得分:3)

基本上复制和粘贴antonio的答案:

    public static LatLngBounds getLatLngBoundsFromCircle(Circle circle){
        if(circle != null){
            return new LatLngBounds.Builder()
                    .include(SphericalUtil.computeOffset(circle.getCenter(), circle.getRadius() * Math.sqrt(2), 45))
                    .include(SphericalUtil.computeOffset(circle.getCenter(), circle.getRadius() * Math.sqrt(2), 225))
                    .build();
        }
        return null;
    }