2012-12-16 9 views
58

v1のGoogleマップでは、MapViewの便利な方法は getMapCenter()です。今では、このAPIのv2で地図センターを取得する方法を理解できません。私はAPIのドキュメントを熟読しましたが、そのような機能についての言及はありません。お知らせ下さい。v2 android mapsのマップの中心を取得するには?

おかげで、 イゴール

答えて

149

私は同じ問題を抱えていました。

mMap.getCameraPosition().target 

ここでmMapはあなたのアクティビティのGoogleMapインスタンスです。基本的に地図の中心を表すLatLngオブジェクトが返されます。

GeoPointクラスはもう使用できません。 http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.html

ターゲットによれば

「はカメラに向いている位置」です。 (私は、サンプルコードでそれをテストし、それが私のために大丈夫働いていた)私はこの二つの方法を発見した

+1

ありがとう、私はGeoPointがv2で利用できなかったことに気付きませんでした。 VisibleRegionオブジェクトを使用して、マップ表示の四隅の中間点を計算しました。 –

+0

それは働いた。ありがとう –

+0

@ラジオComaneciどのようにhtmlのjavascriptと同じを行うには?任意のアイデア –

29

1)最も簡単な、地図のCameraPositionのオブジェクト

にtargetプロパティを使用している最初の

01:私は両方の回答を比較した

VisibleRegion visibleRegion = mMap.getProjection() 
        .getVisibleRegion(); 

Point x = mMap.getProjection().toScreenLocation(
        visibleRegion.farRight); 

Point y = mMap.getProjection().toScreenLocation(
        visibleRegion.nearLeft); 

Point centerPoint = new Point(x.x/2, y.y/2); 

LatLng centerFromPoint = mMap.getProjection().fromScreenLocation(
        centerPoint); 

:秒VisibleRegionオブジェクトを使用している

LatLng center = mMap.getCameraPosition().target; 

2)地図の中心を取得する

Log.d("MapFragment: ", "Center From camera: Long: " + center.longitude 
         + " Lat" + center.latitude); 

Log.d("Punto x", "x:" + x.x + "y:" + x.y); 
Log.d("Punto y", "y:" + y.x + "y:" + y.y); 

Log.d("MapFragment: ", "Center From Point: Long: " 
        + centerFromPoint.longitude + " Lat" 
        + centerFromPoint.latitude); 
+1

オプション2は、オプション1とはまったく異なる答えです。私は透明なツールバーを持っているからかもしれませんか?ヒントをありがとう! – Flyingkiwi

+3

どのような方法が正確ですか? –

+0

@shontauro html javascriptと同じようにするには?任意のアイデア –

5

私はgoogleMap.setOnCameraChangeListener() method to get position of Cameを使用し、その後、活動のonMapReady()メソッドを使用:

あなたが使用することができます
@Override 
public void onMapReady(GoogleMap googMap) { 
    googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
     @Override 
     public void onCameraChange(CameraPosition cameraPosition) { 

     Log.i("centerLat",cameraPosition.target.latitude); 

     Log.i("centerLong",cameraPosition.target.longitude); 

     } 
    }); 
} 
4

:。。 緯度経度= map.getProjection()getVisibleRegion()latLngBounds.getCenter ();

+0

これは完璧な答えです。ありがとう:) –

関連する問題