2016-05-18 4 views
3

指定された中心と半径を持つ円の東北座標と南西座標を取得するにはどうすればよいですか?私はどこでも解決策を見つけることができません。現在、Circleオブジェクトには以前とは違ってgetLatLngBounds()やgetBounds()メソッドがありません。センターと半径を指定して、GoogleマップでサークルのLatLngBoundsを取得するにはどうすればよいですか?

+0

[この回答](https://stackoverflow.com/questions/48440092/geo-circle-to-rectangle-coordinates/48440582#48440582)には単純な数式を使用したソリューションがあります。 –

答えて

5

Google Maps Android API Utility LibrarySphericalUtil.computeOffsetメソッドを使用できます。これを使用するには、あなたの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

は基本的にコピー&ペーストアントニオの答え:

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; 
    } 
関連する問題