如何永久强制执行LatLng边界

时间:2013-11-18 06:25:54

标签: android google-maps camera latitude-longitude

我的谷歌地图中有一个LatLngBounds变量:

LatLngBounds QC = new LatLngBounds(
      new LatLng(14.656669, 120.998598), new LatLng(14.666965, 121.098934));

我希望相机只显示一个特定的城市。我已经实现了它不能缩小很远,只需放大。

map.setOnCameraChangeListener(new OnCameraChangeListener() {

            @Override
            public void onCameraChange(CameraPosition arg0) {

                // adding marker

                if(arg0.zoom <12){

                    map.animateCamera(CameraUpdateFactory.newLatLngZoom(QC.getCenter(), 12));
                }

            }
        });

但是,如果我不将缩放级别更改为低于12,我仍然可以转到地图中的其他国家/地区。关于如何在LatLngBounds内强制执行相机的任何想法?请帮忙!谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在CameraPosition arg0中查看目标。 保存上次已知的CameraPosition,然后: 使用QC.contains(arg0.target)查看目标是否在边界内。如果不。将相机设置为上一个CameraPosition。 希望这会有所帮助。