【问题标题】:My-Location Button of GoogleMaps v2 Android, not displayedGoogleMaps v2 Android 的我的位置按钮,不显示
【发布时间】: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);,如谷歌参考中所示。不知道怎么回事。。

【问题讨论】:

    标签: java android google-maps


    【解决方案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://stackoverflow.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();
              }
              

              setMyLocationEnabledDocumentation
              setMyLocationButtonEnabledDocumentation

              【讨论】:

              • 真的!!!哦天哪……捂脸!非常感谢......它工作完美知道。没有看到这个 MyLocationEnale。再次感谢!!!
              • 不时发生在我们最好的人身上:)。很高兴我能帮助你。祝你好运!
              • 在我的情况下,添加 setMyLocationEnabled(true) 没有帮助,除非我的代码同时获取/收听位置。不知何故,这会触发蓝点出现在地图上。
              猜你喜欢
              • 1970-01-01
              • 2016-08-27
              • 1970-01-01
              • 1970-01-01
              • 2011-01-05
              • 1970-01-01
              • 2013-02-15
              • 2013-10-28
              • 1970-01-01
              相关资源
              最近更新 更多