getLocation = (aMap:AMap)=>{
// 配置连续定位参数 参数网址:https://a.amap.com/lbs-dev-yuntu/static/reference/harmonyosnext-sdk/loc/docs/interfaces/location_AMapLocationOption.AMapLocationOption.html#isOffset
let options: AMapLocationOption = {
priority: geoLocationManager.LocationRequestPriority.FIRST_FIX, //定位优先配置选项
scenario: geoLocationManager.LocationRequestScenario.UNSET, //定位场景设置
// timeInterval: 2, //定位时间间隔
// distanceInterval: 0, //位置报告距离间隔
maxAccuracy: 20, //定位精度 单位:米
singleLocationTimeout: 3000, //指定单次定位超时时间
// allowsBackgroundLocationUpdates: false, //是否允许后台定位
locatingWithReGeocode: false, //定位是否返回逆地理信息
reGeocodeLanguage: AMapLocationReGeocodeLanguage.Chinese, //逆地址语言类型
isOffset: true //是否加偏
}
// 监听定位信息
let listener: IAMapLocationListener = {
onLocationChanged: async (location) => {
this.location = location
// todo something
aMap?.moveCamera(CameraUpdateFactory.newLatLng(new LatLng( location.latitude, location.longitude)));
// 当前定位渲染
this.setLocation(aMap,location)
}, onLocationError: (error) => {
console.log('获取位置错误:',JSON.stringify(error))
// todo something
}
};
// 连续定位Single换成Updating
this.locationManger?.setLocationListener(AMapLocationType.Single, listener) //设置定位信息监听
this.locationManger?.setLocationOption(AMapLocationType.Single, options) //设置定位配置项
this.locationManger?.requestSingleLocation() //开启单次定位
// this.locationManger?.startUpdatingLocation() //开启连续定位
// this.locationManger?.stopUpdatingLocation() //关闭连续定位
}
鸿蒙使用高德获取当前定位
最新推荐文章于 2024-09-13 18:58:47 发布