Android 向け Google マップv1 では、MapView に便利なメソッドがありました:
getMapCenter()
. この API のv2でマップの中心を取得する方法がわかりません。API ドキュメントを熟読しましたが、そのような機能については言及されていません。お知らせ下さい。
ありがとう、イゴール
Android 向け Google マップv1 では、MapView に便利なメソッドがありました:
getMapCenter()
. この API のv2でマップの中心を取得する方法がわかりません。API ドキュメントを熟読しましたが、そのような機能については言及されていません。お知らせ下さい。
ありがとう、イゴール
私も同じ問題を抱えていました。この方法で中心を取得できるようです:
mMap.getCameraPosition().target
ここで、mMap はアクティビティの GoogleMap インスタンスです。これは、基本的に地図の中心を表す LatLng オブジェクトを返します。
GeoPoint
クラスはもう利用できないことに注意してください。
http://developer.android.com/reference/com/google/android/gms/maps/model/CameraPosition.htmlによると
target は「カメラが向いている場所」です。(サンプルコードでテストしたところ、問題なく動作しました)
私はこれを行う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);
使用できます:
latlng=map.getProjection().getVisibleRegion().latLngBounds.getCenter();