2016-11-01 5 views
1

Привет, ребята, моя проблема в mapView. Я хочу установить камеру на новую позицию, но когда я вызываю SetNewPosition, журнал сообщает мне, что координаты изменены, но отображение на экране всегда совпадает с тем же местом.MapView.moveCamera() показать всегда ту же камеру

public void SetNewPosition(double log,double lat) 
     { 
     Log.i("Current position",""+mappa.getCameraPosition()); 

     LatLng latLng= new LatLng(log, lat); 
     CameraUpdate cameraUpdate= CameraUpdateFactory.newLatLng(latLng); 
     mappa.moveCamera(cameraUpdate); 
     mappa.clear(); 
     map.invalidate(); 
     map.postInvalidate(); 
     Log.i("Changed position",""+mappa.getCameraPosition()); 

    } 

Может ли кто-нибудь сказать, где моя ошибка?

ответ

3

Это то, что вы можете использовать:

LatLng latLng = new LatLng (log, lat); 

LatLngBounds.Builder builder = new LatLngBounds.Builder(); 
builder.include (latLng); 

LatLngBounds bounds = builder.build(); 

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds (bounds, 0); 

googleMap.animateCamera (cameraUpdate); 
+0

он не работает. генерирует java.lang.IllegalStateException: ошибка при использовании newLatLngBounds (LatLngBounds, int): размер карты не может быть 0. Скорее всего, макет еще не появился для отображения карты. Либо дождаться появления макета, либо использовать newLatLngBounds (LatLngBounds, int, int, int), который позволяет указать размеры карты. –

+0

Подождите .. ваша карта еще не инициализирована? ('OnMapreadyCallback') –

+0

Я попытался использовать newLatLngBounds (LatLngBounds, int, int, int), но он не работает до –

Смежные вопросы