新しいGoogle Maps API v2でmyLocationのズームレベルを変更することはできますか? GoogleMap.setEnableMyLocation(true);を設定した場合あなたはあなたの場所を見つけるために地図上のボタンを取得します。それをクリックすると、地図はあなたの場所にあなたを連れて行き、それをあるレベルにズームインします。このズームを小さくしたり、大きくしたりできますか?
デフォルトのmyLocationマーカーでクリック時に変更できるかどうかは疑わしいです。ただし、アプリが見つかったら自動的に現在地をズームインする場合は、 この質問
私が提供した答えはズームインしませんが、onLocationChangedメソッドを以下のように変更すると、好きなズームレベルを選択できます。
@Override
public void onLocationChanged(Location location)
{
if( mListener != null )
{
mListener.onLocationChanged( location );
//Move the camera to the user's location and zoom in!
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 12.0f));
}
}
以下も使用できます。
mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );
ズーム値を最小値= 2.0から最大値= 21.0の間の任意の値に変更するだけです。
APIは、すべての場所に最大ズームまたは最大ズームに近い値のタイルがあるわけではないことを警告しています。
CameraUpdateFactory
で使用可能なズームメソッドの詳細については、 this を参照してください。
場所付き-新しいGoogleMaps SDKの場合:
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
HeatfanJohnのソリューションとは少し異なるソリューションで、ズームを現在のズームレベルに相対的に変更します。
// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));
OnMapReady()メソッド
zoomLevelを目的の値に変更します。
float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
およそのズームレベル とその機能を次に示します。
1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings
このようにして、たとえばストリートレベルにズームすることができます(下の「15f」はストリートレベルです)。
override fun onMapReady(googleMap: GoogleMap?) {
googleMap?.mapType = GoogleMap.MAP_TYPE_NORMAL
googleMap?.addMarker(MarkerOptions()
.position(LatLng(37.4233438, -122.0728817))
.title("cool place")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ROSE)))
googleMap?.animateCamera(CameraUpdateFactory.newLatLngZoom(LatLng(37.4233438, -122.0728817), 15f))
注:異なる場所では異なる最大ズームレベルを使用できることを知っているだけです。最大または最小ズームレベルを取得する場合は、googleMap.maxZoomLevel
を使用してください。
maps_activity.xmlに1行だけ記述する必要があります
map:cameraZoom="13"
これで問題が解決することを願っています...
私も最近同じクエリを持っていました....上記のsetmaxzoomまたはmap:cameraZoom = "13"のどれも動作しなかった方法がありますこれは正しいですこれは最新の使用です
compile 'com.google.Android.gms:play-services:11.8.0'
使用できます
CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);
Location locaton;
double latitude = location.getlatitude;
double longitude = location.getlongitude;
ズームを保存したり、常に取得したい場合は、次を呼び出す必要があります
int zoom = mMap.getCameraPosition().zoom;
//To set that just use
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom);