Исправить уровень масштабирования между двумя маркерами в Google-карте
В настоящее время я работаю с Google-Map-v2 и хочу показать направление между двумя маркерами. Все в порядке, и направление между двумя маркерами вычисляется и рисуется отлично.Но остается только одна проблема.
Проблема в том, что уровень масштабирования между этими двумя маркерами в Google-карте слишком велик. Я ищу в SO и нахожу решение для изменения уровня масштабирования следующим кодом:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(origin);
builder.include(dest);
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50);
mMap.animateCamera(cu);
Теперь это лучше, но все еще уровень масштабирования не очень хорош. Можно ли это сделать? исправления в коде ? ( если я могу, то некоторая прокладка для просмотра исправлена)
Я также изменяю 50 на 6,12,... Но ничего не изменилось.
2 ответа:
Вы используете правильный код, и значение (50) должно быть увеличено, если вы хотите уменьшить масштаб (быть внешним) или уменьшено до 0, если вы хотите быть в самой маленькой области, содержащей два маркера (вы можете пропустить значение в случае).
Если вы задаете значение 150 или больше, а уровень слишком велик, вы можете использовать обратный вызов анимации для уменьшения масштаба после " latlng" масштаб:
Https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.html#animateCamera(com.google.android.gms.maps.CameraUpdatecom.гугл.андроид.СБМ.карты.Расчет.CancelableCallback)
LatLngBounds.Builder builder = new LatLngBounds.Builder(); builder.include(origin); builder.include(dest); LatLngBounds bounds = builder.build(); CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50); mMap.animateCamera(cu, new GoogleMap.CancelableCallback(){ void onCancel(){} void onFinish(){ CameraUpdate zout = CameraUpdateFactory.zoomBy(-3.0); mMap.animateCamera(zout); } });
Это должно увеличить до latLng, а когда закончите, увеличьте назад на 3 уровня.