如何在Google地图中使用CameraPosition应用相机边界

时间:2015-11-26 13:04:12

标签: android google-maps android-maps-v2

我需要使用CameraPosition和CameraBounds的一些功能,就像我的具体要求是将相机移动到轴承上并将其倾斜几度以及地图上还有其他标记我想要覆盖我执行相机更新。

CameraUpdateFactory 类在两个不同的目的上有两种不同的方法。 1)newCameraPosition 2)newLatLngBounds
但我怀疑我是否可以同时使用它们来获得我想要的结果。

CameraPosition的工作方式如下:

LatLng current_lat_lng=new LatLng(lat, lon);
        CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(current_lat_lng)      // Sets the center of the map to Mountain View
        .zoom(googleMap.getCameraPosition().zoom)                   // Sets the zoom
        .bearing((float)mapHeading)                // Sets the orientation of the camera to a bearing
        .tilt(0)                   // Sets the tilt of the camera to 0 degrees
        .build();
        googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

CameraBounds的工作方式如下:

final LatLngBounds.Builder builder = new LatLngBounds.Builder();
        if (marker_Searched != null) {
            builder.include(marker_Searched.getPosition());
        }
        if (marker_selected_taxi != null) {
            builder.include(marker_selected_taxi.getPosition());
        }   

        LatLngBounds bounds = builder.build();      
        int padding = 300; // offset from edges of the map in pixels
        CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
        googleMap.moveCamera(cu);

有没有人试过这个解决方法?

1 个答案:

答案 0 :(得分:0)

使用CancellableCallback将相机设置为LatLngBounds,然后在onFinish中获取缩放值(map.getCameraPosition(。。zoom),然后将此值应用于CameraPosition。它对我很有用。