GoogleMaps v2 Android 的我的位置按钮,不显示

Posted

技术标签:

【中文标题】GoogleMaps v2 Android 的我的位置按钮,不显示【英文标题】:My-Location Button of GoogleMaps v2 Android, not displayed 【发布时间】:2013-04-15 13:02:18 【问题描述】:

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

我就是这样做的:

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);,如谷歌参考中所示。不知道怎么回事。。

【问题讨论】:

【参考方案1】:

您需要权限使其可见

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);

    

【讨论】:

【参考方案2】:

添加以下行。

科特林:

map.isMyLocationEnabled = true

map 是一个 GoogleMap 对象。

(此问题中更详细的答案:https://***.com/a/15142091/11211963)

【讨论】:

【参考方案3】:

以上答案无效。

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)
    

【讨论】:

【参考方案4】:

对我来说,ma​​p.setMyLocationEnabled(true); 它适用于棉花糖设备以下和棉花糖设备以上,我在应用程序内手动设置了位置权限。 后来我的位置按钮可见。

【讨论】:

【参考方案5】:

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

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

变成这样

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

map.setMyLocationEnabled(true);

【讨论】:

【参考方案6】:

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();


setMyLocationEnabledDocumentationsetMyLocationButtonEnabledDocumentation

【讨论】:

真的!!!哦天哪……捂脸!非常感谢......它工作完美知道。没有看到这个 MyLocationEnale。再次感谢!!! 不时发生在我们最好的人身上:)。很高兴我能帮助你。祝你好运! 在我的情况下,添加 setMyLocationEnabled(true) 没有帮助,除非我的代码同时获取/收听位置。不知何故,这会触发蓝点出现在地图上。

以上是关于GoogleMaps v2 Android 的我的位置按钮,不显示的主要内容,如果未能解决你的问题,请参考以下文章