# LocationService **Repository Path**: scau_zhangpeng/location-service ## Basic Information - **Project Name**: LocationService - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 27 - **Created**: 2024-12-23 - **Last Updated**: 2024-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于位置服务获取设备定位信息 ### 介绍 本示例通过@kit.LocationKit中的geoLocationManager实现获取缓存位置、获取当前位置和持续定位功能,并结合@kit.BackgroundTasksKit中的backgroundTaskManager开启长时任务,实现后台定位功能,同时运用map.Marker将位置信息标记在地图上。开发者可以在需要用到设备位置信息的开发场景中,如查看所在城市天气、出行打车、旅行导航以及观察运动轨迹等,集成本示例代码实现定位功能。 ### 效果预览 | 首页 | |-----------------------------------------------| | ![](screenshots/devices/location_service.png) | ## 使用说明 使用前请参考地图服务开发指南 “配置AppGallery Connect” 章节,[并开通地图](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-config-agc-V5)。 1. 进入主页,点击"获取缓存位置"按钮获取缓存位置信息,并将其标记在地图上。 2. 进入主页,点击"获取当前位置"按钮获取当前位置信息,并将其标记在地图上。 3. 进入主页,点击"持续定位"按钮,地图上会显示相关位置信息,并持续更新位置信息;再次点击"持续定位"按钮,停止持续更新位置信息。 4. 进入主页,点击"后台定位"按钮,地图上会显示相关位置信息,将应用退至后台后仍可持续更新位置信息;应用回到前台,再次点击"后台定位"按钮后将应用退至后台,停止持续更新位置信息。 ### 工程目录 ``` ├──entry/src/main/ets/ // 代码区 │ ├──common │ │ └──CommonConstants.ets // 常量类 │ ├──entryability │ │ └──EntryAbility.ets // 程序入口类 │ ├──model │ │ └──LocationInter.ets // 位置经纬度信息 │ └──pages │ └──index.ets // 主页面 └──entry/src/main/resources // 应用静态资源目录 ``` ### 具体实现 + 本例中,点击"获取缓存位置"按钮,调用geoLocationManager.getLastLocation方法,获取缓存位置信息,使用Marker接口内的方法进行位置标记,使用geoLocationManager.getAddressesFromLocation方法调用逆地理编码服务,将坐标转换为地理位置信息。 + 本例中,点击"获取当前位置"按钮,调用geoLocationManager.getCurrentLocation方法,获取当前位置信息,使用Marker接口内的方法进行位置标记,使用geoLocationManager.getAddressesFromLocation方法调用逆地理编码服务,将坐标转换为地理位置信息。 + 本例中,点击"持续定位"按钮,调用geoLocationManager.on方法,通过监听经纬度变化,持续获取位置信息,使用Marker接口内的方法进行位置标记,使用geoLocationManager.getAddressesFromLocation方法调用逆地理编码服务,将坐标转换为地理位置信息。 + 本例中,点击"后台定位"按钮,调用backgroundTaskManager.startBackgroundRunning方法,开启后台定位服务的长时任务,并调用geoLocationManager.on方法开启经纬度变化监听,当应用退至后台时持续获取位置信息,使用Marker接口内的方法进行位置标记,使用geoLocationManager.getAddressesFromLocation方法调用逆地理编码服务,将坐标转换为地理位置信息。 ### 相关权限 ohos.permission.LOCATION:允许应用获取设备位置信息。 ohos.permission.APPROXIMATELY_LOCATION:允许应用获取设备模糊位置信息。 ohos.permission.LOCATION_IN_BACKGROUND:允许应用在后台获取设备位置信息。 ohos.permission.KEEP_BACKGROUND_RUNNING:允许应用开启长时任务。 ohos.permission.GET_NETWORK_INFO:允许应用获取设备网络连接信息。说明:获取设备位置信息无需该权限,本示例中申请该权限用于感知设备网络连接状态并在无网状态下做出适当提示。 ### 依赖 不涉及。 ### 约束与限制 1.本示例仅支持标准系统上运行,支持设备:华为手机。 2.HarmonyOS系统:HarmonyOS 5.0.0 Release及以上。 3.DevEco Studio版本:DevEco Studio 5.0.0 Release及以上。 4.HarmonyOS SDK版本:HarmonyOS 5.0.0 Release SDK及以上。