Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Сомнительно, что вы можете изменить его при щелчке с маркером myLocation по умолчанию. Однако, если вы хотите, чтобы приложение автоматически увеличивало масштаб вашего местоположения после его обнаружения, я бы проверил свой ответ на этот вопрос

Обратите внимание, что предоставленный мной ответ не приближается, но если вы измените метод onLocationChanged, как тот, который приведен ниже, вы можете выбрать любой желаемый уровень масштабирования:

@Override
public void onLocationChanged(Location location) 
{
    if( mListener != null )
    {
        mListener.onLocationChanged( location );

        //Move the camera to the user location and zoom in!
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 12.0f));
    }
}

Ответ 2

Вы также можете использовать:

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

Чтобы просто изменить значение масштабирования на любое желаемое значение между минимальным значением = 2.0 и максимальным значением = 21.0.

API предупреждает, что не все местоположения имеют плитки со значениями, близкими или близкими к максимальному.

Подробнее о методах масштабирования, доступных в CameraUpdateFactory, см. .

Ответ 3

с местоположением - в новом SDK GoogleMaps:

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

Ответ 4

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

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

Ответ 5

В методе onMapReady()

измените zoomLevel на любое желаемое значение.

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

Ответ 6

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

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

Ты можешь использовать

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

Ответ 8

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

map:cameraZoom="13"

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

Ответ 9

Даже у меня недавно был такой же запрос.... некоторые, как ни один из вышеупомянутых setmaxzoom или map: cameraZoom = "13" не работал. Так что я обнаружил, что зависимость, которую я использовал, была старой, пожалуйста, убедитесь, что ваша зависимость от карт Google правильно, это новейшее использование этого

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

Ответ 10

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

Ответ 11

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentPlace,15)); Это не будет иметь эффект анимации.