【HMS】地图服务我的位置定位问题
【问题描述】
关于华为HMS-地图服务没有定位到我的位置的问题。
背景:下载集成华为地图服务官网demo运行后,
使用createMapView方式展示地图,设置自动定位
@Override
public void onMapReady(HuaweiMap map) {
Log.d(TAG, "onMapReady: ");
hMap = map;
hMap.setMyLocationEnabled(true);
// hMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(48.893478, 2.334595), 10));
}
页面没有变化,没有定位到我的位置,咨询如何设置自动定位切换到我的位置。
【解决方案】
1、demo中没有相关的设置,需要开发者自行添加。
开发者可以开启“我的位置”功能向用户展示他们在地图上的当前位置,在使用该功能之前,请先确保已申请定位权限。Android提供了两种位置权限:ACCESS_COARSE_LOCATION(粗略的位置权限)和ACCESS_FINE_LOCATION(精确的位置权限)。
需要在Manifest文件中申请权限:
2、在Manifest中添加后,还要在代码中动态申请一下权限(Android 6.0危险权限要求):
3、调用HuaweiMap对象的setMyLocationEnabled(true)方法以启用“我的位置”功能。
4、在开启该功能后,“我的位置”按钮默认显示在地图的右下角,用户的定位会以蓝色圆点的形式呈现。当用户点击该按钮时,如果获取到用户的位置,将会在屏幕中心显示当前定位。如果设置了“我的位置”按钮侦听器,用户点击“我的位置”按钮时,会通过调用HuaweiMap.OnMyLocationButtonClickListener的onMyLocationButtonClick()接口回调。
也可以通过调用HuaweiMap.getUiSettings()方法返回UiSettings类的对象,并通过该对象的setMyLocationButtonEnabled(false)方法来隐藏“我的位置”按钮。
拓展:
也可以使用代码:
hMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(d0,d1), 15));
实现定位到我的位置。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh