2013-07-12 2 views
7

Я использую следующий код, чтобы отобразить один маркер на уровне масштабирования, но он не центрирует маркер на карте. Только один маркер будет когда-либо будет показано:Центр маркера карты в Android

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

Этот код будет центрировать его, но он не дает никакого увеличения:

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

мне нужно отцентровать и приблизить.

ответ

7

Правильное значение для увеличения составляет от 2,0 до 22.00.

После этого вы, чтобы добавить эту строку

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

О масштабе Вы можете прочитать это из документации зума: желаемый уровень масштабирования в диапазоне от 2,0 до 21,0. Значения ниже этого диапазона установлены в 2.0, а значения выше него равны 21.0. Увеличьте значение для увеличения. Не во всех областях есть плитки с наибольшим уровнем масштабирования.

Вы можете проверить это на http://developer.android.com/reference/com/google/android/gms/maps/CameraUpdateFactory.html

3

это потому, что вам нужно переместить вас камеру к CameraUpdateFactory вы создали, как это:

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

, если вы не хотите анимацию, то вы могли бы просто использовать:

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

CameraUpdateFactory.newLatLng (LatLng, 11.0f) не является действительным. Этот метод не принимает параметр масштабирования. Вам нужно newLatLngZoom – AndroidDev

+0

Да, я пропустил тот факт, что он произвело резекцию поплавкового зума. –

21

Попробуйте следующее

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

Вы также можете сделать это (более чистый способ)

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)); 

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

+0

Я уже дал этот ответ. –

+0

Да, я видел это после того, как я разместил его – eMi

+0

, поэтому вы можете удалить дубликат ответа. –

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