Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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
Java 如何在谷歌地图中将相机设置为用户位置_Java_Android_Android Studio_Kotlin - Fatal编程技术网

Java 如何在谷歌地图中将相机设置为用户位置

Java 如何在谷歌地图中将相机设置为用户位置,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,我设置了代码,这样它就可以加载地图,但是在用户按下缩放按钮之前,它不会自动转到用户的位置。我更希望它是在用户位置启动的,或者至少在地图出现的几秒钟内加载的。在onMapready中使用此代码 @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_

我设置了代码,这样它就可以加载地图,但是在用户按下缩放按钮之前,它不会自动转到用户的位置。我更希望它是在用户位置启动的,或者至少在地图出现的几秒钟内加载的。

在onMapready中使用此代码

@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    return;
}

mMap.setMyLocationEnabled(true);

mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
    @Override
    public void onMyLocationChange(Location location) {

        CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(location.getLatitude(), location.getLongitude()));
        CameraUpdate zoom = CameraUpdateFactory.zoomTo(11);
        mMap.clear();

        MarkerOptions mp = new MarkerOptions();

        mp.position(new LatLng(location.getLatitude(), location.getLongitude()));

        mp.title("my position");

        mMap.addMarker(mp);
        mMap.moveCamera(center);
        mMap.animateCamera(zoom);

    }
});}}

xml代码添加如下映射:

<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
在清单中添加权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


试试这段代码,它可以帮助你

我不记得谷歌地图的回调方法,但你可以将显示位置的代码移动到
onMapReady()
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>