web-dev-qa-db-ja.com

Android Google Maps v2-myLocationのズームレベルを設定します

新しいGoogle Maps API v2でmyLocationのズームレベルを変更することはできますか? GoogleMap.setEnableMyLocation(true);を設定した場合あなたはあなたの場所を見つけるために地図上のボタンを取得します。それをクリックすると、地図はあなたの場所にあなたを連れて行き、それをあるレベルにズームインします。このズームを小さくしたり、大きくしたりできますか?

95
dumazy

デフォルトの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));
    }
}
186
DiscDev

以下も使用できます。

mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );    

ズーム値を最小値= 2.0から最大値= 21.0の間の任意の値に変更するだけです。

APIは、すべての場所に最大ズームまたは最大ズームに近い値のタイルがあるわけではないことを警告しています。

CameraUpdateFactoryで使用可能なズームメソッドの詳細については、 this を参照してください。

132
HeatfanJohn

場所付き-新しいGoogleMaps SDKの場合:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
19
itzhar

HeatfanJohnのソリューションとは少し異なるソリューションで、ズームを現在のズームレベルに相対的に変更します。

// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));
13
Teo Inke

OnMapReady()メソッド

zoomLevelを目的の値に変更します。

float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
12
Ankit Singh

およそのズームレベル とその機能を次に示します。

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を使用してください。

7
j2emanue

maps_activity.xmlに1行だけ記述する必要があります

map:cameraZoom="13"

これで問題が解決することを願っています...

1
Ankit Singh

私も最近同じクエリを持っていました....上記のsetmaxzoomまたはmap:cameraZoom = "13"のどれも動作しなかった方法がありますこれは正しいですこれは最新の使用です

compile 'com.google.Android.gms:play-services:11.8.0' 
1
Siddarth Nyati

使用できます

    CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
    CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);
1
pavel
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);
0
Varun Chandran