在Android中居中地图标记

时间:2013-07-12 09:20:07

标签: android google-maps

我使用以下代码在缩放级别显示单个标记,但它不会在地图上居中标记。只会显示一个标记:

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

此代码将使其居中,但它不提供任何缩放:

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

我需要居中和缩放。

3 个答案:

答案 0 :(得分:26)

尝试以下

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

答案 1 :(得分:9)

缩放的正确值介于2.0和22.00之间。

在此之后你要添加这一行

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

关于缩放,您可以从文档中阅读 zoom:所需的缩放级别,范围为2.0到21.0。低于此范围的值设置为2.0,高于此值的值设置为21.0。增加值以放大。并非所有区域都具有最大缩放级别的图块。

您可以在http://developer.android.com/reference/com/google/android/gms/maps/CameraUpdateFactory.html

上查看此内容

答案 2 :(得分:3)

这是因为您需要将相机移动到您创建的CameraUpdateFactory,如下所示:

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

如果您不想要动画,那么您可以使用:

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