Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android/Google地图-模拟Google地图设备位置焦点_Android_Google Maps - Fatal编程技术网

Android/Google地图-模拟Google地图设备位置焦点

Android/Google地图-模拟Google地图设备位置焦点,android,google-maps,Android,Google Maps,我正在寻找有关我的Android应用程序的帮助 在谷歌地图中,当您单击MyLocation按钮时,相机将锁定设备的移动,直到地图被拖走。我试图在我的地图上模拟这种行为 我当前的代码能够返回设备的位置并锁定它。问题在于更新锁定/解锁状态 我的想法是: -默认情况下,相机锁定在设备上。 -当摄像机移动时,检查其停止时的位置。如果它停在设备位置的顶部,则相机仍处于锁定状态。否则,摄像头将被解锁 这是正确的方法还是有更好的方法 谢谢, 代码: 好的。我算出来了 我将SetOnCameradleListe

我正在寻找有关我的Android应用程序的帮助

在谷歌地图中,当您单击MyLocation按钮时,相机将锁定设备的移动,直到地图被拖走。我试图在我的地图上模拟这种行为

我当前的代码能够返回设备的位置并锁定它。问题在于更新锁定/解锁状态

我的想法是: -默认情况下,相机锁定在设备上。 -当摄像机移动时,检查其停止时的位置。如果它停在设备位置的顶部,则相机仍处于锁定状态。否则,摄像头将被解锁

这是正确的方法还是有更好的方法

谢谢, 代码:


好的。我算出来了

我将SetOnCameradleListener更改为onCameraMove,这更有意义

这样,每次移动摄像机时,检查摄像机是否位于设备顶部

然后,onCameraMove inside需要在返回小数值时解释一些错误

@Override
public void onMapReady(GoogleMap googleMap) {
    Log.d(TAG, "onMapReady: map loaded");
    Toast.makeText(this, "Eat Safe!", Toast.LENGTH_SHORT).show();
    map = googleMap;

    if (locationPermissionGranted) {
        getLastKnownLocation();
        map.setMyLocationEnabled(true);
        map.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
            @Override
            public boolean onMyLocationButtonClick() {
                Log.d(TAG, "onMyLocationButtonClick: camera locked");
                cameraLocked = true;
                return true;
            }
        });
        map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
            @Override
            public void onCameraIdle() {
                Log.d(TAG, "setOnCameraIdleListener: camera Idle");
                LatLng cameraPosition = map.getCameraPosition().target;
                if(cameraPosition.equals(myLocation)){
                    Log.d(TAG, "setOnCameraIdleListener: camera on top of device");

                }else{
                    Log.d(TAG, "setOnCameraIdleListener: camera unlocked");
                    cameraLocked = false;
                }
            }
        });
    }
}