获取当前地理位置鸿蒙示例代码

鸿蒙场景化示例代码技术工程师
发布于 2025-2-12 17:06
浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例利用 @ohos.geoLocationManager 通过位置服务获取当前设备所处的地理位置及经纬度,设置精准定位开关可获取精准位置。

获取当前地理位置源码链接

效果预览

获取当前地理位置鸿蒙示例代码-鸿蒙开发者社区

使用说明

  1. 点击"获取当前位置"的按钮,点击按钮出现是否允许应用获取地理位置的弹窗,允许之后可获取当前位置。
  2. 应用设置获取精准定位的开关,打开开关获取精准位置,精准度在米级别。

实现思路

用户允许获取定位的弹窗

定位前检查是否已经获取用户授权访问设备位置信息,如未获得授权,向用户申请需要的位置权限。

  1. ohos.permission.APPROXIMATELY_LOCATION:用于获取模糊位置,精确度为5公里。
  2. ohos.permission.LOCATION:用于获取精准位置,精准度在米级别。

获取当前位置

使用@ohos.geoLocationManager接口获取设备位置的经纬度,再将经纬度转换成实际位置。核心代码如下,源码参考

Index.ets

let locationChange = (err: BusinessError, location: geoLocationManager.Location) => {
          // 获取经纬度
          if (location.latitude === 0 && location.longitude === 0) {
            return;
          }

          // 将经纬度转成实际位置
          let reverseGeocodeRequest: geoLocationManager.ReverseGeoCodeRequest = {
            'locale': this.locale.toString().includes('zh') ? 'zh' : 'en',
            'latitude': location.latitude,
            'longitude': location.longitude,
            'maxItems': 1
          };
          geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then(data => {
            if (data[0].placeName) {
              this.message = this.message + data[0].placeName;
            }
          }).catch((err: Error) => {
            Logger.error('GetAddressesFromLocation err ' + JSON.stringify(err));
          });
        };
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

分类
已于2025-2-28 14:48:43修改
收藏
回复
举报


回复
    相关推荐