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

问题描述 投票:92回答:10

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

android google-maps-mobile google-maps-android-api-2
10个回答
192
投票

您可以通过默认的myLocation Marker点击更改它是值得怀疑的。但是,如果您希望应用程序在找到后自动放大您的位置,我会查看我对this question的回答

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

0
投票
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);

137
投票

您还可以使用:

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

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

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

有关this中可用的缩放方法的更多信息,请参阅CameraUpdateFactory


20
投票

与位置 - 在新的GoogleMaps SDK中:

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

14
投票

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

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

12
投票

在onMapReady()方法中

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

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

11
投票

以下是approximate zoom levels及其作用:

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


2
投票

您可以使用

    CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
    CameraUpdate zoom = CameraUpdateFactory.zoomTo(12);

1
投票

你必须在maps_activity.xml中只写一行

map:cameraZoom="13"

我希望这能解决你的问题......


1
投票

即使我最近有相同的查询....一些如何没有上面提到的setmaxzoom或否映射:cameraZoom =“13”不起作用所以我发现我使用的依赖性是旧请请确保您对谷歌地图的依赖这是最新的用法

compile 'com.google.android.gms:play-services:11.8.0' 
© www.soinside.com 2019 - 2024. All rights reserved.