1# @system.geolocation (地理位置) 2 3本模块仅提供GNSS定位、网络定位等基本功能。 4 5> **说明:** 6> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7> - 从API Version 9开始,该接口不再维护,推荐使用新接口[geoLocationManager](js-apis-geoLocationManager.md)。 8 9 10## 导入模块 11 12``` 13import geolocation from '@system.geolocation'; 14``` 15 16 17## 权限列表 18 19ohos.permission.LOCATION 20 21 22## geolocation.getLocation<sup>(deprecated)</sup> 23 24getLocation(options?: GetLocationOption): void 25 26获取设备的地理位置。 27 28> **说明:**<br/> 29> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation)替代。 30 31**需要权限**:ohos.permission.LOCATION 32 33**系统能力:** SystemCapability.Location.Location.Lite 34 35**参数:** 36 37| 参数名 | 类型 | 必填 | 说明 | 38| -------- | -------- | -------- | -------- | 39| options | [GetLocationOption](#getlocationoptiondeprecated) | 否 | 单次定位请求的配置参数。 | 40 41**示例:** 42 43``` 44export default { 45 getLocation() { 46 geolocation.getLocation({ 47 success: function(data) { 48 console.log('success get location data. latitude:' + data.latitude); 49 }, 50 fail: function(data, code) { 51 console.log('fail to get location. code:' + code + ', data:' + data); 52 } 53 }); 54 } 55} 56``` 57 58 59## geolocation.getLocationType<sup>(deprecated)</sup> 60 61getLocationType(options?: GetLocationTypeOption): void 62 63获取当前设备支持的定位类型。 64 65> **说明:**<br/> 66> 从API version 9开始废弃。位置服务子系统仅支持gnss和network两种定位类型,后续不再提供接口查询支持的定位类型。 67 68**系统能力:** SystemCapability.Location.Location.Lite 69 70**参数:** 71 72| 参数名 | 类型 | 必填 | 说明 | 73| -------- | -------- | -------- | -------- | 74| options | [GetLocationTypeOption](#getlocationtypeoptiondeprecated) | 否 | 回调函数,用于接收查询结果,或者接收查询失败的结果。 | 75 76**示例:** 77 78``` 79export default { 80 getLocationType() { 81 geolocation.getLocationType({ 82 success: function(data) { 83 console.log('success get location type:' + data.types[0]); 84 }, 85 fail: function(data, code) { 86 console.log('fail to get location. code:' + code + ', data:' + data); 87 }, 88 }); 89 }, 90} 91``` 92 93 94## geolocation.subscribe<sup>(deprecated)</sup> 95 96subscribe(options: SubscribeLocationOption): void 97 98订阅设备的地理位置信息。多次调用的话,只有最后一次的调用生效。 99 100> **说明:**<br/> 101> 从API version 9开始废弃,建议使用[geoLocationManager.on('locationChange')](js-apis-geoLocationManager.md#geolocationmanageronlocationchange)替代。 102 103**需要权限**:ohos.permission.LOCATION 104 105**系统能力:** SystemCapability.Location.Location.Lite 106 107**参数:** 108 109| 参数名 | 类型 | 必填 | 说明 | 110| -------- | -------- | -------- | -------- | 111| options | [SubscribeLocationOption](#subscribelocationoptiondeprecated) | 是 | 持续定位的配置参数。 | 112 113**示例:** 114 115``` 116export default { 117 subscribe() { 118 geolocation.subscribe({ 119 success: function(data) { 120 console.log('get location. latitude:' + data.latitude); 121 }, 122 fail: function(data, code) { 123 console.log('fail to get location. code:' + code + ', data:' + data); 124 }, 125 }); 126 }, 127} 128``` 129 130 131## geolocation.unsubscribe<sup>(deprecated)</sup> 132 133unsubscribe(): void 134 135取消订阅设备的地理位置信息。 136 137> **说明:**<br/> 138> 从API version 9开始废弃,建议使用[geoLocationManager.off('locationChange')](js-apis-geoLocationManager.md#geolocationmanagerofflocationchange)替代。 139 140**需要权限**:ohos.permission.LOCATION 141 142**系统能力:** SystemCapability.Location.Location.Lite 143 144**示例:** 145 146``` 147export default { 148 unsubscribe() { 149 geolocation.unsubscribe(); 150 } 151} 152``` 153 154 155## geolocation.getSupportedCoordTypes<sup>(deprecated)</sup> 156 157getSupportedCoordTypes(): Array<string> 158 159获取设备支持的坐标系类型。 160 161> **说明:**<br/> 162> 从API version 9开始废弃。位置服务子系统仅支持wgs84坐标系,后续不再提供接口查询支持的坐标系类型。 163 164**系统能力:** SystemCapability.Location.Location.Lite 165 166**返回值:** 167 168| 类型 | 非空 | 说明 | 169| -------- | -------- | -------- | 170| Array<string> | 是 | 表示坐标系类型,如[wgs84, gcj02]。 | 171 172**示例:** 173 174``` 175export default { 176 getSupportedCoordTypes() { 177 var types = geolocation.getSupportedCoordTypes(); 178 }, 179} 180``` 181 182## GetLocationOption<sup>(deprecated)</sup> 183 184单次定位请求的配置参数。 185 186> **说明:**<br/> 187> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#CurrentLocationRequest)替代。 188 189**需要权限**:ohos.permission.LOCATION 190 191**系统能力**:SystemCapability.Location.Location.Lite 192 193| 名称 | 类型 | 必填 | 说明 | 194| -------- | -------- | -------- | -------- | 195| timeout | number | 否 | 超时时间,单位为ms,默认值为30000。<br/>设置超时,是为了防止出现权限被系统拒绝、定位信号弱或者定位设置不当,导致请求阻塞的情况。超时后会使用fail回调函数。<br/>取值范围为32位正整数。如果设置值小于等于0,系统按默认值处理。 | 196| coordType | string | 否 | 坐标系的类型,可通过getSupportedCoordTypes获取可选值,缺省值为wgs84。 | 197| success | (data: [GeolocationResponse](#geolocationresponsedeprecated)) => void | 否 | 接口调用成功的回调函数。 | 198| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。data为错误信息,code为错误码。 | 199| complete | () => void | 否 | 接口调用结束的回调函数。 | 200 201fail返回错误代码: 202 203| 错误码 | 说明 | 204| -------- | -------- | 205| 601 | 获取定位权限失败,失败原因:用户拒绝。 | 206| 602 | 权限未声明。 | 207| 800 | 超时,失败原因:网络状况不佳或GNSS不可用。 | 208| 801 | 系统位置开关未打开。 | 209| 802 | 该次调用结果未返回前接口又被重新调用,该次调用失败返回错误码。 | 210 211## GeolocationResponse<sup>(deprecated)</sup> 212 213位置信息,包含经度、纬度、定位精度等信息。 214 215> **说明:**<br/> 216> 从API version 9开始废弃,建议使用[geoLocationManager.Location](js-apis-geoLocationManager.md#location)替代。 217 218**系统能力**:SystemCapability.Location.Location.Lite 219 220| 名称 | 类型 | 可读 | 可写 | 说明 | 221| -------- | -------- | -------- | -------- | -------- | 222| longitude | number | 是 | 否 | 设备位置信息:经度。 | 223| latitude | number | 是 | 否 | 设备位置信息:纬度。 | 224| altitude | number | 是 | 否 | 设备位置信息:海拔。 | 225| accuracy | number | 是 | 否 | 设备位置信息:精确度。 | 226| time | number | 是 | 否 | 设备位置信息:时间。 | 227 228## GetLocationTypeOption<sup>(deprecated)</sup> 229 230查询定位类型接口的入参,用于存放回调函数,在查询成功或者失败时接收查询结果。 231 232> **说明:**<br/> 233> 从API version 9开始废弃。 234 235**系统能力**:SystemCapability.Location.Location.Lite 236 237| 名称 | 类型 | 必填 | 说明 | 238| -------- | -------- | -------- | -------- | 239| success | (data: [GetLocationTypeResponse](#getlocationtyperesponsedeprecated)) => void | 否 | 接口调用成功的回调函数。 | 240| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 | 241| complete | () => void | 否 | 接口调用结束的回调函数。 | 242 243## GetLocationTypeResponse<sup>(deprecated)</sup> 244 245当前设备支持的定位类型列表 246 247> **说明:**<br/> 248> 从API version 9开始废弃。 249 250**系统能力**:SystemCapability.Location.Location.Lite 251 252| 名称 | 类型 | 可读 | 可写 | 说明 | 253| -------- | -------- | -------- | -------- | -------- | 254| types | Array<string> | 是 | 否 | 可选的定位类型['gps', 'network']。 | 255 256## SubscribeLocationOption<sup>(deprecated)</sup> 257 258持续定位请求的配置参数。 259 260> **说明:**<br/> 261> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#locationrequest)替代。 262 263**需要权限**:ohos.permission.LOCATION 264 265**系统能力**:SystemCapability.Location.Location.Lite 266 267| 名称 | 类型 | 必填 | 说明 | 268| -------- | -------- | -------- | -------- | 269| coordType | string | 否 | 坐标系的类型,可通过getSupportedCoordTypes获取可选值,默认值为wgs84。 | 270| success | (data: [GeolocationResponse](#geolocationresponsedeprecated)) => void | 是 | 位置信息发生变化的回调函数。 | 271| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 | 272 273fail返回错误代码: 274 275| 错误码 | 说明 | 276| -------- | -------- | 277| 601 | 获取定位权限失败,失败原因:用户拒绝。 | 278| 602 | 权限未声明。 | 279| 801 | 系统位置开关未打开。 | 280