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