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

    }

页面没有变化,没有定位到我的位置,咨询如何设置自动定位切换到我的位置。

cke_531.png

 

【解决方案】

1、demo中没有相关的设置,需要开发者自行添加。

开发者可以开启“我的位置”功能向用户展示他们在地图上的当前位置,在使用该功能之前,请先确保已申请定位权限。Android提供了两种位置权限:ACCESS_COARSE_LOCATION(粗略的位置权限)和ACCESS_FINE_LOCATION(精确的位置权限)。

需要在Manifest文件中申请权限:

cke_2012.png

2、在Manifest中添加后,还要在代码中动态申请一下权限(Android 6.0危险权限要求):

cke_3864.png

3、调用HuaweiMap对象的setMyLocationEnabled(true)方法以启用“我的位置”功能。

cke_6127.png

4、在开启该功能后,“我的位置”按钮默认显示在地图的右下角,用户的定位会以蓝色圆点的形式呈现。当用户点击该按钮时,如果获取到用户的位置,将会在屏幕中心显示当前定位。如果设置了“我的位置”按钮侦听器,用户点击“我的位置”按钮时,会通过调用HuaweiMap.OnMyLocationButtonClickListener的onMyLocationButtonClick()接口回调。

也可以通过调用HuaweiMap.getUiSettings()方法返回UiSettings类的对象,并通过该对象的setMyLocationButtonEnabled(false)方法来隐藏“我的位置”按钮。

cke_8975.png

拓展:

也可以使用代码:

hMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(d0,d1), 15));

实现定位到我的位置。

 

​欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

posted @ 2022-09-21 09:01  华为开发者论坛  阅读(643)  评论(0编辑  收藏  举报