Java 谷歌地图v2安卓版的“我的位置”按钮,未显示

Java 谷歌地图v2安卓版的“我的位置”按钮,未显示,java,android,google-maps,Java,Android,Google Maps,我正在用谷歌地图做一个应用程序,但当我尝试添加“我的位置”按钮时,正如参考资料所说的那样,不起作用 我就是这样做的: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); map = ((SupportMapFragment) getSuppor

我正在用谷歌地图做一个应用程序,但当我尝试添加“我的位置”按钮时,正如参考资料所说的那样,不起作用

我就是这样做的:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

        locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
        providersList = locManager.getAllProviders();
        provider =locManager.getProvider(providersList.get(0));
        precision = provider.getAccuracy();
        req = new Criteria();
        req.setAccuracy(Criteria.ACCURACY_FINE);        
        inside = false;

        map.getUiSettings().setMyLocationButtonEnabled(true);

        buildPolygon();
        drawPolygon();
        startLocalization();
    }

我使用了
map.getUiSettings().setMyLocationButtonEnabled(true)如谷歌参考中所示。我不知道发生了什么。

默认情况下,
myLocationButtonEnabled
为true,并在启用
setMyLocationEnabled
层时显示

试试这个:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

    // Add this line
    map.setMyLocationEnabled(true);

    locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
    providersList = locManager.getAllProviders();
    provider =locManager.getProvider(providersList.get(0));
    precision = provider.getAccuracy();
    req = new Criteria();
    req.setAccuracy(Criteria.ACCURACY_FINE);        
    inside = false;

    //map.getUiSettings().setMyLocationButtonEnabled(true);

    buildPolygon();
    drawPolygon();
    startLocalization();
}

setMyLocationEnabled


setMyLocationButtonEnabled

只需添加
map.setMyLocationEnabled(true)创建地图后

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
像这样

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

map.setMyLocationEnabled(true);

对我来说,map.setMyLocationEnabled(true)
它对低于棉花糖的设备和高于棉花糖的设备运行良好,我在应用程序设置中手动授予了位置权限。
后来我的位置按钮出现了。

上面的答案不起作用

override fun onMapReady(googleMap: GoogleMap?) {
    this.googleMap = googleMap

    setupMap()
}

private fun setupMap() {
    if (ActivityCompat.checkSelfPermission(context!!,
            Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
        // Before enabling the My Location layer, you must request location permission from the user.
        googleMap?.isMyLocationEnabled = true
        // *** Use this method ***
        googleMap?.uiSettings?.isMyLocationButtonEnabled = true

        // See https://developers.google.com/maps/documentation/android-sdk/location
        googleMap?.setOnMyLocationButtonClickListener(this)
        googleMap?.setOnMyLocationClickListener(this)
    } else {
        // Show rationale and request permission.
        requestPermissions(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),
            LOCATION_REQUEST_CODE)
    }
}

添加以下行

科特林:

map.isMyLocationEnabled = true
map
是一个谷歌地图对象


(此问题的更详细答案:)

您需要许可才能使其可见

if (ActivityCompat.checkSelfPermission(Maps_Activity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(Maps_Activity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

   requestPermission();

   return;
}

mMap.setMyLocationEnabled(true);

    

真的!!!哦,上帝。。脸掌!非常感谢。。。你知道,它工作得很好。没有看到我的位置分析。再次感谢!!!我们中最优秀的人有时也会遇到:)。很高兴我能帮忙。祝你好运!在我的例子中,添加setMyLocationEnabled(true)没有帮助,除非我的代码同时获取/侦听位置。不知何故,这会触发蓝点出现在地图上。