如何使用latlngbounds限制Google Maps并仍然获取用户位置?

时间:2018-11-11 07:02:59

标签: android google-maps

我创建了一个Android活动,该活动将获取用户位置并在其上放置标记。我的问题是这些代码应该放在哪里

    float minZoomPreference = 10.0f;
    float maxZoomPreference = 25;
    mMap.setMinZoomPreference(minZoomPreference);
    mMap.setMaxZoomPreference(maxZoomPreference);
    LatLngBounds Bataan = new LatLngBounds(new 
    LatLng(14.385137,120.277853),new LatLng(14.874146,120.592793));

    mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(Bataan,0));
    mMap.setLatLngBoundsForCameraTarget(Bataan);

最初,它位于onMapReady类内部,但是位置查找器不起作用,因此我删除了上面的代码,并且位置查找器工作正常。

我现在的问题是我应该在哪里放置代码,以便限制地图视图并同时定位设备?

1 个答案:

答案 0 :(得分:0)

我想出了一种方法,我只是将代码放入了权限检查(如果声明)

if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED){

//some code
    float minZoomPreference = 10.0f;
    float maxZoomPreference = 25;
    mMap.setMinZoomPreference(minZoomPreference);
    mMap.setMaxZoomPreference(maxZoomPreference);
    LatLngBounds Bataan = new LatLngBounds(new LatLng(14.385137,120.277853),new LatLng(14.874146,120.592793));

    mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(Bataan,0));
    mMap.setLatLngBoundsForCameraTarget(Bataan);

}