Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Google Maps v2-设置myLocation的缩放级别_Android_Google Maps Mobile_Google Maps Android Api 2 - Fatal编程技术网

Android Google Maps v2-设置myLocation的缩放级别

Android Google Maps v2-设置myLocation的缩放级别,android,google-maps-mobile,google-maps-android-api-2,Android,Google Maps Mobile,Google Maps Android Api 2,是否可以使用新的Google Maps API v2更改myLocation的缩放级别 如果设置GoogleMap.setEnableMyLocation(true),你可以在地图上找到你的位置 如果你点击它,地图会把你带到你的位置,并把它放大到某个水平。我可以将此缩放更改为更小或更大吗?您是否可以使用默认的myLocation标记单击更改它。但是,如果你想让应用程序在找到你的位置后自动放大,我会查看我的答案 请注意,我提供的答案没有放大,但是如果您将onLocationChanged方法修改为

是否可以使用新的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”中可用的缩放方法的更多信息,请参见。该解决方案与HeatfanJohn的略有不同,我将缩放更改为当前缩放级别:

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

位置-在新的Google地图SDK中:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
如果要保存缩放或一直获取缩放,只需调用以下命令

int zoom = mMap.getCameraPosition().zoom;

//To set that just use

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(getlatitude(), getlongitude),zoom);

您只需在maps_activity.xml中写一行

map:cameraZoom="13"
我希望这将解决您在onMapReady()方法中的问题…

将zoomLevel更改为任何所需的值

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

就连我最近也有同样的疑问……上面提到的setmaxzoom或else-map:cameraZoom=“13”都不起作用 所以我发现我使用的依赖性是旧的 请确保您对谷歌地图的依赖关系是正确的 这是本书的最新用途

compile 'com.google.android.gms:play-services:11.8.0' 
以下是它们的功能和作用:

1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings
例如,您可以执行类似的操作以缩放到街道级别(注意下面的“15f”是街道级别):

注意:只是为了让您知道不同的位置可以有不同的最大缩放级别。如果您想获得最大或最小缩放级别,请尝试使用googleMap.maxZoomLevel

    CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
    CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentPlace,15))

这不会产生动画效果。

以上大多数答案都不推荐使用,或者缩放功能保留当前纬度和经度,不会缩放到您想要的确切位置。将以下代码添加到onMapReady()方法中

@Override
public void onMapReady(GoogleMap googleMap) {
    //Set marker on the map
    googleMap.addMarker(new MarkerOptions().position(new LatLng(0.0000, 0.0000)).title("Marker"));
    //Create a CameraUpdate variable to store the intended location and zoom of the camera
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(0.0000, 0.0000), 13);
    //Animate the zoom using the animateCamera() method
    googleMap.animateCamera(cameraUpdate);
}
我试过使用“mMap.animateCamera(CameraUpdateFactory.zoomTo(17.0f));”但它对我不起作用。所以我用这个动画在开始时放大

LatLng loc = new LatLng(33.8688, 151.2093);
mMap.addMarker(new MarkerOptions().position(loc).title("Sydney"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 18), 5000, null);

默认的缩放级别是多少?14是默认的缩放级别您知道我的位置按钮缩放级别吗?我想要这个值。newLatLngZoom()和zoom()之间有区别吗?很多其他答案都提到了这一点?在应用程序中,从最终用户的角度来看,这些看起来是一样的。
@Override
public void onMapReady(GoogleMap googleMap) {
    //Set marker on the map
    googleMap.addMarker(new MarkerOptions().position(new LatLng(0.0000, 0.0000)).title("Marker"));
    //Create a CameraUpdate variable to store the intended location and zoom of the camera
    CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(0.0000, 0.0000), 13);
    //Animate the zoom using the animateCamera() method
    googleMap.animateCamera(cameraUpdate);
}
LatLng loc = new LatLng(33.8688, 151.2093);
mMap.addMarker(new MarkerOptions().position(loc).title("Sydney"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 18), 5000, null);