Google地图动画相机不会指定位置

时间:2018-03-26 17:43:55

标签: android google-maps

我有一个非常好奇的问题,我无法在任何地方找到答案。

目标:
当我将模型加载到地图上时,我从该模型中提取一个点,并且该点是我想要设置为新的相机中心。

问题:
当我使用map.animateCamera(position)时,相机移动到模型下方。我不能推断出什么是错的,我已经在文档中搜索过但没有找到任何内容。

我如何测试:
为了测试位置是否正确,我在地图上放置了一个标记点​​,并且该标记位于正确的位置,这意味着相机是问题所在。

我也尝试了不同的方法map.moveCamera()以及CameraUpdateFactory.newCameraPosition()等等。

代码

private void recenterModel(List<PolygonOptions> t) {
    if(t == null || t.isEmpty()) return;
    int center = t.size()/2;
    PolygonOptions polygon = t.get(center);
    while(polygon.getPoints().isEmpty()){
        polygon = t.get((++center%t.size()));
        if(center > t.size()+1) return; /*If we are here, there aren't any points in model*/
    }
    center = polygon.getPoints().size()/2;
    LatLng centerPoint = polygon.getPoints().get(center);

    GoogleMap map = modelMapDrawable.ctx.getMap();
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(centerPoint , 15));
    map.addMarker(new MarkerOptions().position(centerPoint)); 
}

对我来说是什么
当我首次加载应用程序时,它会正确加载项目的中心点。 map.animateCamera()就像一个魅力。每次我为中心点做它都有效。 但是当我map.animateCamera()到其他位置时,我再也无法让它工作了。
 所以我觉得相机的坐标系已经移动了

1 个答案:

答案 0 :(得分:0)

请试试这个:

map.animateCamera(CameraUpdateFactory.newLatLngZoom(centerPoint , 15), 2000, new GoogleMap.CancelableCallback() {
    @Override
    public void onFinish() {

    }

    @Override
    public void onCancel() {

    }
});

这将为动画提供一些时间。我认为,这里的问题在于即时执行正在处理的动画。