2015-04-29 2 views
-1

В API Google Maps v2 метод animateCamera используется для определения уровня масштабирования для просмотра. Например,Динамический масштаб API Карт Google v2 Android

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat1, lng1), 12)); 

Здесь уровень масштабирования фиксируется до 12. Как я могу убедиться, что значение масштаба фиксирован, позволит пользователю просматривать исходные и конечные точки вдоль маршрута без ручной масштабировании ,

Я знаю, используя методы проб и ошибок и некоторые условия if-else, значения могут быть определены. Но есть ли более сложный способ сделать это?

ответ

5

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

LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
builder.include(startPoint); 
builder.include(endPoint); 
LatLngBounds bound = builder.build(); 
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bound, 25), 1000, null); 

начальную и конечную точку являются LatLng объекты.

0

Ответ Rajat правильный, но вам нужно дождаться загрузки карты, иначе вы можете получить ошибку «размер карты равен 0».

googleMap.setOnMapLoadedCallback(this); 

...

@Override 
public void onMapLoaded() { 
    if (googleMap != null) { 
     LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
     builder.include(startPoint); 
     builder.include(endPoint); 
     LatLngBounds bound = builder.build(); 

     googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bound, 40)); 
    } 
} 
Смежные вопросы