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

dum*_*azy 99 android google-maps-mobile google-maps-android-api-2

是否可以使用新的Google Maps API v2更改myLocation的缩放级别?如果设置了GoogleMap.setEnableMyLocation(true); 你在地图上找到一个按钮来找到你的位置.如果您点击它,地图会将您带到您的位置并将其放大到某个级别.我可以将此缩放更改为更少或更多吗?

Dis*_*Dev 198

您可以通过默认的myLocation Marker点击更改它是值得怀疑的.但是,如果您希望应用在找到后自动放大您的位置,我会查看此问题的答案

请注意,我提供的答案不会放大,但如果您将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));
    }
}
Run Code Online (Sandbox Code Playgroud)


Hea*_*ohn 140

您还可以使用:

mMap.animateCamera( CameraUpdateFactory.zoomTo( 17.0f ) );    
Run Code Online (Sandbox Code Playgroud)

只需将缩放值更改为最小值= 2.0和最大值= 21.0之间的任何所需值.

API警告并非所有位置都具有处于或接近最大缩放的值的图块.

请参见有关在可用的缩放方法的详细信息CameraUpdateFactory.


itz*_*har 21

与位置 - 在新的GoogleMaps SDK中:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(chLocation,14));
Run Code Online (Sandbox Code Playgroud)

  • newLatLngZoom()和zoom()之间是否存在很多其他答案引用的区别?在应用程序中,从最终用户的角度来看,这些看起来一样. (2认同)

Teo*_*nke 14

与HeatfanJohn的解决方案略有不同,我将变焦相对于当前缩放级别更改:

// Zoom out just a little
map.animateCamera(CameraUpdateFactory.zoomTo(map.getCameraPosition().zoom - 0.5f));
Run Code Online (Sandbox Code Playgroud)


小智 12

在onMapReady()方法中

将zoomLevel更改为任何所需的值.

float zoomLevel = (float) 18.0;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, zoomLevel));
Run Code Online (Sandbox Code Playgroud)


j2e*_*nue 11

以下是近似缩放级别及其作用:

1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings
Run Code Online (Sandbox Code Playgroud)

所以你可以做这样的事情来缩放到街道级别(注意下面的"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))
Run Code Online (Sandbox Code Playgroud)