繁体   English   中英

如何调整缩放级别以适应边界,然后在标记偏移中调整中心贴图?

[英]How to adjust zoom level to fit boundary and then center map in marker offset?

我有一个谷歌地图(com.google.android.gms.maps.GoogleMap),我有一些标记设置。

我能够,分开,

1)调整缩放级别并将地图置于边界中心:

mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));

2)将地图置于其中一个标记上方:

LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude 
    + offset, markerSelected.getPosition().longitude);

mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));

但是,对于我的生活,我不能同时做两件事,使用newLatLngBounds调整缩放级别,然后将地图置于其他地方。 无论我做什么,都是我在地图上看到的。

我该怎么做呢?

对于未来的访客,您可以使用相机动画链接:

map.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10), 2000, new CancelableCallback() {

    @Override
    public void onFinish() {
        LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude);
        map.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
    }

    @Override
    public void onCancel() {
    }
});

另请参阅AnimateCameraChainingExampleActivity.java以获取无限链接的示例。

尝试同时使用moveCameraanimateCamera ......

mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude 
    + offset, markerSelected.getPosition().longitude);

mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));

moveCamera将直接移动到那个位置,而animateCamera将提供移动效果。 它们本质上是线性的,所以一个将在另一个之后发生,但是如上所述将它们分层将提供您正在寻找的潜在效果

如果您试图在UI上查看两个调用的实际移动,则需要在完成动画时根据需要注册回调。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM