83

Android 向け Google マップv1 では、MapView に便利なメソッドがありました: getMapCenter(). この API のv2でマップの中心を取得する方法がわかりません。API ドキュメントを熟読しましたが、そのような機能については言及されていません。お知らせ下さい。

ありがとう、イゴール

4

6 に答える 6

201

私も同じ問題を抱えていました。この方法で中心を取得できるようです:

mMap.getCameraPosition().target

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

GeoPointクラスはもう利用できないことに注意してください。

http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.htmlによると

target は「カメラが向いている場所」です。(サンプルコードでテストしたところ、問題なく動作しました)

于 2012-12-18T11:34:04.887 に答える
34

私はこれを行う2つの方法を見つけました:

1) 最も簡単です。1 つ目は、Map の CameraPosition オブジェクトで target プロパティを使用することです。

 LatLng center = mMap.getCameraPosition().target;

2) 2 番目は、VisibleRegion オブジェクトを使用しています。

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);

私は両方の答えを比較しました:

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);
于 2013-05-19T22:51:23.983 に答える
15

使用できます:

latlng=map.getProjection().getVisibleRegion().latLngBounds.getCenter();
于 2016-02-24T19:04:24.023 に答える