Android Google Maps v2-установить уровень масштабирования для myLocation



можно ли изменить уровень масштабирования для myLocation с помощью нового Google Maps API v2?
Если вы установите GoogleMap.setEnableMyLocation (true); вы получаете кнопку на карте, чтобы найти свое местоположение. Если вы нажмете на нее, карта приведет вас к вашему местоположению и увеличит его до некоторого уровня. Могу ли я изменить этот масштаб, чтобы быть меньше или больше?

407   9  

9 ответов:

сомнительно, что вы можете изменить его по щелчку с маркером 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.

С location-in new GoogleMaps SDK:

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

немного другое решение, чем HeatfanJohn, где я изменяю масштаб относительно текущего уровня масштабирования:

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

в методе onMapReady ()

измените уровень масштабирования на любое желаемое значение.

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

вы должны написать только одну строку в maps_activity.xml

map:cameraZoom="13"

Я надеюсь, что это решит вашу проблему...

здесь приблизительные уровни масштабирования и что они делают :

1: World
5: Landmass/continent
10: City
15: Streets
20: Buildings

таким образом, вы можете сделать что-то вроде этого, чтобы увеличить до уровня улицы, например :

 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))
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);

даже у меня недавно был такой же запрос....некоторые, как ни один из вышеупомянутых setmaxzoom или еще карта: cameraZoom= "13" не работает Поэтому я обнаружил, что depenedency, который я использовал, был старым пожалуйста, убедитесь, что ваша зависимость для карт google верна это самое новое использование этого

compile 'com.google.android.gms:play-services:11.8.0' 

Comments

    Ничего не найдено.