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】:对我来说,map.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();
setMyLocationEnabled
DocumentationsetMyLocationButtonEnabled
Documentation
【讨论】:
真的!!!哦天哪……捂脸!非常感谢......它工作完美知道。没有看到这个 MyLocationEnale。再次感谢!!! 不时发生在我们最好的人身上:)。很高兴我能帮助你。祝你好运! 在我的情况下,添加 setMyLocationEnabled(true) 没有帮助,除非我的代码同时获取/收听位置。不知何故,这会触发蓝点出现在地图上。以上是关于GoogleMaps v2 Android 的我的位置按钮,不显示的主要内容,如果未能解决你的问题,请参考以下文章
根据用户移动 android googleMaps v2 更新折线
Google Maps Android API V2 检查设备上是不是安装了 GoogleMaps
Google Maps Android API V2 检查 Google Maps 应用程序是不是被禁用