2013-07-12 14 views
7

Używam następującego kodu do wyświetlania pojedynczego znacznika na poziomie powiększenia, ale nie umieszcza znacznika na mapie. Tylko jeden znacznik nigdy nie będzie pokazany:Wyśrodkuj znacznik mapy na Androidzie

LatLng latLng = new LatLng(Latitude, Longitude); 
cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 11.0f); 

Ten kod będzie to centrum, ale nie zapewnia żadnej zoom:

LatLngBounds bounds = latLngBuilder.build(); 
cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 30); 

muszę centrum i zoom.

Odpowiedz

7

Prawidłowa wartość dla zoom jest między 2,0 a 22.00.

Po to masz, aby dodać tę linię

GoogleMap mMap; 
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latlng, 10)); 

O przybliżyć wam może odczytać to z dokumentacji zoom: żądany poziom powiększenia w zakresie od 2,0 do 21,0. Wartości poniżej tego zakresu są ustawione na 2,0, a wartości powyżej są ustawione na 21,0. Zwiększ wartość, aby powiększyć. Nie wszystkie obszary mają kafelki na największych poziomach powiększenia.

Można to sprawdzić na http://developer.android.com/reference/com/google/android/gms/maps/CameraUpdateFactory.html

3

to dlatego, że trzeba przenieść się aparat do CameraUpdateFactory utworzony w następujący sposób:

LatLng latLng = new LatLng(Latitude, Longitude); 
map.animateCamera(CameraUpdateFactory.newLatLng(latLng, 11); 

jeśli nie chcesz animację, następnie można po prostu użyć:

map.moveCamera(CameraUpdateFactory.newLatLng(latLng, 11); 
+4

CameraUpdateFactory.newLatLng (długość i szerokość geograficzną, 11.0f) nie jest ważny. Ta metoda nie przyjmuje parametru powiększenia. Potrzebujesz newLatLngZoom – AndroidDev

+0

tak, ominąłem fakt, że obliczył zoom zmiennoprzecinkowy. –

21

Wypróbuj następujące

LatLng coordinate = new LatLng(Latitude, Latitude); 
CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 11.0f); 
map.animateCamera(yourLocation); 

można również zrobić to (czystszy sposób)

CameraPosition cameraPosition = new CameraPosition.Builder() 
    .target(Latitude, Latitude) // Center Set 
    .zoom(11.0f)    // Zoom 
    .bearing(90)    // Orientation of the camera to east 
    .tilt(30)     // Tilt of the camera to 30 degrees 
    .build();     // Creates a CameraPosition from the builder 
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

Od https://developers.google.com/maps/documentation/android/views?hl=fr-FR#moving_the_camera

+0

Już podałem tę odpowiedź. –

+0

Tak, zobaczyłem to po opublikowaniu go – eMi

+0

, więc możesz usunąć duplikat odpowiedzi. –

Powiązane problemy