1# @ohos.geolocation (位置服务) 2 3位置服务提供GNSS定位、网络定位、地理编码、逆地理编码、国家码和地理围栏等基本功能。 4 5> **说明:** 6> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7> 从API Version 9开始,该接口不再维护,推荐使用新接口[geoLocationManager](js-apis-geoLocationManager.md)。 8> 本模块能力仅支持WGS-84坐标系。 9 10## 申请权限 11 12应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。 13 14系统提供的定位权限有: 15- ohos.permission.LOCATION 16 17- ohos.permission.APPROXIMATELY_LOCATION 18 19- ohos.permission.LOCATION_IN_BACKGROUND 20 21访问设备的位置信息,必须申请权限,并且获得用户授权。 22 23API9之前的版本,申请ohos.permission.LOCATION即可。 24 25API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION。 26 27| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 | 28| -------- | -------- | -------- | -------- | 29| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 | 30| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 | 31| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 | 32| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 | 33 34如果应用在后台运行时也需要访问设备位置,需要申请ohos.permission.LOCATION_IN_BACKGROUND权限或申请LOCATION类型的长时任务,这样应用在切入后台之后,系统可以继续上报位置信息。 35 36应用如需使用ohos.permission.LOCATION_IN_BACKGROUND权限,需要在设置界面由用户手动授予,具体授权方式可参考[ohos.permission.LOCATION_IN_BACKGROUND权限说明](../../security/AccessToken/permissions-for-all.md#ohospermissionlocation_in_background)。 37 38长时任务申请可参考[长时任务](../../task-management/continuous-task.md)。 39 40开发者可以在应用配置文件中声明所需要的权限,具体可参考[向用户申请授权](../../security/AccessToken/request-user-authorization.md)。 41 42 43## 导入模块 44 45```ts 46import geolocation from '@ohos.geolocation'; 47``` 48 49## geolocation.on('locationChange')<sup>(deprecated)</sup> 50 51on(type: 'locationChange', request: LocationRequest, callback: Callback<Location>): void 52 53开启位置变化订阅,并发起定位请求。 54 55> **说明:**<br/> 56> 从API version 9开始废弃,建议使用[geoLocationManager.on('locationChange')](js-apis-geoLocationManager.md#geolocationmanageronlocationchange)替代。 57 58**需要权限**:ohos.permission.LOCATION 59 60**系统能力**:SystemCapability.Location.Location.Core 61 62**参数:** 63 64 | 参数名 | 类型 | 必填 | 说明 | 65 | -------- | -------- | -------- | -------- | 66 | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 | 67 | request | [LocationRequest](#locationrequestdeprecated) | 是 | 设置位置请求参数。 | 68 | callback | Callback<[Location](#locationdeprecated)> | 是 | 接收位置变化状态变化监听。 | 69 70 71 72**示例** 73 74 ```ts 75 import geolocation from '@ohos.geolocation'; 76 let requestInfo:geolocation.LocationRequest = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; 77 let locationChange = (location:geolocation.Location):void => { 78 console.log('locationChanger: data: ' + JSON.stringify(location)); 79 }; 80 geolocation.on('locationChange', requestInfo, locationChange); 81 ``` 82 83 84## geolocation.off('locationChange')<sup>(deprecated)</sup> 85 86off(type: 'locationChange', callback?: Callback<Location>): void 87 88关闭位置变化订阅,并删除对应的定位请求。 89 90> **说明:**<br/> 91> 从API version 9开始废弃,建议使用[geoLocationManager.off('locationChange')](js-apis-geoLocationManager.md#geolocationmanagerofflocationchange)替代。 92 93**需要权限**:ohos.permission.LOCATION 94 95**系统能力**:SystemCapability.Location.Location.Core 96 97**参数:** 98 99 | 参数名 | 类型 | 必填 | 说明 | 100 | -------- | -------- | -------- | -------- | 101 | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 | 102 | callback | Callback<[Location](#locationdeprecated)> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 103 104 105**示例** 106 107 ```ts 108 import geolocation from '@ohos.geolocation'; 109 let requestInfo:geolocation.LocationRequest = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; 110 let locationChange = (location:geolocation.Location):void => { 111 console.log('locationChanger: data: ' + JSON.stringify(location)); 112 }; 113 geolocation.on('locationChange', requestInfo, locationChange); 114 geolocation.off('locationChange', locationChange); 115 ``` 116 117 118## geolocation.on('locationServiceState')<sup>(deprecated)</sup> 119 120on(type: 'locationServiceState', callback: Callback<boolean>): void 121 122订阅位置服务状态变化。 123 124> **说明:**<br/> 125> 从API version 9开始废弃,建议使用[geoLocationManager.on('locationEnabledChange')](js-apis-geoLocationManager.md#geolocationmanageronlocationenabledchange)替代。 126 127**需要权限**:ohos.permission.LOCATION 128 129**系统能力**:SystemCapability.Location.Location.Core 130 131**参数:** 132 133 | 参数名 | 类型 | 必填 | 说明 | 134 | -------- | -------- | -------- | -------- | 135 | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 | 136 | callback | Callback<boolean> | 是 | 接收位置服务状态变化监听。 | 137 138 139**示例** 140 141 ```ts 142 import geolocation from '@ohos.geolocation'; 143 let locationServiceState = (state:boolean):void => { 144 console.log('locationServiceState: ' + JSON.stringify(state)); 145 } 146 geolocation.on('locationServiceState', locationServiceState); 147 ``` 148 149 150## geolocation.off('locationServiceState')<sup>(deprecated)</sup> 151 152off(type: 'locationServiceState', callback?: Callback<boolean>): void; 153 154取消订阅位置服务状态变化。 155 156> **说明:**<br/> 157> 从API version 9开始废弃,建议使用[geoLocationManager.off('locationEnabledChange')](js-apis-geoLocationManager.md#geolocationmanagerofflocationenabledchange)替代。 158 159**需要权限**:ohos.permission.LOCATION 160 161**系统能力**:SystemCapability.Location.Location.Core 162 163**参数**: 164 165 | 参数名 | 类型 | 必填 | 说明 | 166 | -------- | -------- | -------- | -------- | 167 | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 | 168 | callback | Callback<boolean> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 169 170 171**示例** 172 173 ```ts 174 import geolocation from '@ohos.geolocation'; 175 let locationServiceState = (state:boolean):void => { 176 console.log('locationServiceState: state: ' + JSON.stringify(state)); 177 } 178 geolocation.on('locationServiceState', locationServiceState); 179 geolocation.off('locationServiceState', locationServiceState); 180 ``` 181 182 183## geolocation.on('cachedGnssLocationsReporting')<sup>(deprecated)</sup> 184 185on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback<Array<Location>>): void; 186 187订阅缓存GNSS定位结果上报事件。 188 189> **说明:**<br/> 190> 从API version 8开始支持。 191> 从API version 9开始废弃,建议使用[geoLocationManager.on('cachedGnssLocationsChange')](js-apis-geoLocationManager.md#geolocationmanageroncachedgnsslocationschange)替代。 192 193**需要权限**:ohos.permission.LOCATION 194 195**系统能力**:SystemCapability.Location.Location.Gnss 196 197**参数**: 198 199 | 参数名 | 类型 | 必填 | 说明 | 200 | -------- | -------- | -------- | -------- | 201 | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 | 202 | request | [CachedGnssLocationsRequest](#cachedgnsslocationsrequestdeprecated) | 是 | GNSS缓存功能配置参数 | 203 | callback | Callback<Array<[Location](#locationdeprecated)>> | 是 | 接收GNSS缓存位置上报。 | 204 205 206**示例** 207 208 ```ts 209 import geolocation from '@ohos.geolocation'; 210 let cachedLocationsCb = (locations:Array<geolocation.Location>):void => { 211 console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); 212 } 213 let requestInfo:geolocation.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; 214 geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); 215 ``` 216 217 218## geolocation.off('cachedGnssLocationsReporting')<sup>(deprecated)</sup> 219 220off(type: 'cachedGnssLocationsReporting', callback?: Callback<Array<Location>>): void; 221 222取消订阅缓存GNSS定位结果上报事件。 223 224> **说明:**<br/> 225> 从API version 8开始支持。 226> 从API version 9开始废弃,建议使用[geoLocationManager.off('cachedGnssLocationsChange')](js-apis-geoLocationManager.md#geolocationmanageroffcachedgnsslocationschange)替代。 227 228**需要权限**:ohos.permission.LOCATION 229 230**系统能力**:SystemCapability.Location.Location.Gnss 231 232**参数**: 233 234 | 参数名 | 类型 | 必填 | 说明 | 235 | -------- | -------- | -------- | -------- | 236 | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 | 237 | callback | Callback<Array<[Location](#locationdeprecated)>> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 238 239 240**示例** 241 242 ```ts 243 import geolocation from '@ohos.geolocation'; 244 let cachedLocationsCb = (locations:Array<geolocation.Location>):void => { 245 console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); 246 } 247 let requestInfo:geolocation.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true}; 248 geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb); 249 geolocation.off('cachedGnssLocationsReporting'); 250 ``` 251 252 253## geolocation.on('gnssStatusChange')<sup>(deprecated)</sup> 254 255on(type: 'gnssStatusChange', callback: Callback<SatelliteStatusInfo>): void; 256 257订阅GNSS卫星状态信息上报事件。 258 259> **说明:**<br/> 260> 从API version 8开始支持。 261> 从API version 9开始废弃,建议使用[geoLocationManager.on('satelliteStatusChange')](js-apis-geoLocationManager.md#geolocationmanageronsatellitestatuschange)替代。 262 263**需要权限**:ohos.permission.LOCATION 264 265**系统能力**:SystemCapability.Location.Location.Gnss 266 267**参数**: 268 269 | 参数名 | 类型 | 必填 | 说明 | 270 | -------- | -------- | -------- | -------- | 271 | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 | 272 | callback | Callback<[SatelliteStatusInfo](#satellitestatusinfodeprecated)> | 是 | 接收GNSS卫星状态信息上报。 | 273 274 275**示例** 276 277 ```ts 278 import geolocation from '@ohos.geolocation'; 279 let gnssStatusCb = (satelliteStatusInfo:geolocation.SatelliteStatusInfo):void => { 280 console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); 281 } 282 geolocation.on('gnssStatusChange', gnssStatusCb); 283 ``` 284 285 286## geolocation.off('gnssStatusChange')<sup>(deprecated)</sup> 287 288off(type: 'gnssStatusChange', callback?: Callback<SatelliteStatusInfo>): void; 289 290取消订阅GNSS卫星状态信息上报事件。 291 292> **说明:**<br/> 293> 从API version 8开始支持。 294> 从API version 9开始废弃,建议使用[geoLocationManager.off('satelliteStatusChange')](js-apis-geoLocationManager.md#geolocationmanageroffsatellitestatuschange)替代。 295 296**需要权限**:ohos.permission.LOCATION 297 298**系统能力**:SystemCapability.Location.Location.Gnss 299 300**参数**: 301 302 | 参数名 | 类型 | 必填 | 说明 | 303 | -------- | -------- | -------- | -------- | 304 | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 | 305 | callback | Callback<[SatelliteStatusInfo](#satellitestatusinfodeprecated)> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 306 307**示例** 308 309 ```ts 310 import geolocation from '@ohos.geolocation'; 311 let gnssStatusCb = (satelliteStatusInfo:geolocation.SatelliteStatusInfo) => { 312 console.log('gnssStatusChange: ' + JSON.stringify(satelliteStatusInfo)); 313 } 314 geolocation.on('gnssStatusChange', gnssStatusCb); 315 geolocation.off('gnssStatusChange', gnssStatusCb); 316 ``` 317 318 319## geolocation.on('nmeaMessageChange')<sup>(deprecated)</sup> 320 321on(type: 'nmeaMessageChange', callback: Callback<string>): void; 322 323订阅GNSS NMEA信息上报事件。 324 325> **说明:**<br/> 326> 从API version 8开始支持。 327> 从API version 9开始废弃,建议使用[geoLocationManager.on('nmeaMessage')](js-apis-geoLocationManager.md#geolocationmanageronnmeamessage)替代。 328 329**需要权限**:ohos.permission.LOCATION 330 331**系统能力**:SystemCapability.Location.Location.Gnss 332 333**参数**: 334 335 | 参数名 | 类型 | 必填 | 说明 | 336 | -------- | -------- | -------- | -------- | 337 | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS NMEA信息上报。 | 338 | callback | Callback<string> | 是 | 接收GNSS NMEA信息上报。 | 339 340 341**示例** 342 343 ```ts 344 import geolocation from '@ohos.geolocation'; 345 let nmeaCb = (str:string):void => { 346 console.log('nmeaMessageChange: ' + JSON.stringify(str)); 347 } 348 geolocation.on('nmeaMessageChange', nmeaCb ); 349 ``` 350 351 352## geolocation.off('nmeaMessageChange')<sup>(deprecated)</sup> 353 354off(type: 'nmeaMessageChange', callback?: Callback<string>): void; 355 356取消订阅GNSS NMEA信息上报事件。 357 358> **说明:**<br/> 359> 从API version 8开始支持。 360> 从API version 9开始废弃,建议使用[geoLocationManager.off('nmeaMessage')](js-apis-geoLocationManager.md#geolocationmanageroffnmeamessage)替代。 361 362**需要权限**:ohos.permission.LOCATION 363 364**系统能力**:SystemCapability.Location.Location.Gnss 365 366**参数**: 367 368 | 参数名 | 类型 | 必填 | 说明 | 369 | -------- | -------- | -------- | -------- | 370 | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS NMEA信息上报。 | 371 | callback | Callback<string> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 372 373 374**示例** 375 376 ```ts 377 import geolocation from '@ohos.geolocation'; 378 let nmeaCb = (str:string):void => { 379 console.log('nmeaMessageChange: ' + JSON.stringify(str)); 380 } 381 geolocation.on('nmeaMessageChange', nmeaCb); 382 geolocation.off('nmeaMessageChange', nmeaCb); 383 ``` 384 385 386## geolocation.on('fenceStatusChange')<sup>(deprecated)</sup> 387 388on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; 389 390添加一个围栏,并订阅地理围栏事件。 391 392> **说明:**<br/> 393> 从API version 8开始支持。 394> 从API version 9开始废弃,建议使用[geoLocationManager.on('gnssFenceStatusChange')](js-apis-geoLocationManager.md#geolocationmanagerongnssfencestatuschange)替代。 395 396**需要权限**:ohos.permission.LOCATION 397 398**系统能力**:SystemCapability.Location.Location.Geofence 399 400**参数**: 401 402 | 参数名 | 类型 | 必填 | 说明 | 403 | -------- | -------- | -------- | -------- | 404 | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 | 405 | request | [GeofenceRequest](#geofencerequestdeprecated) | 是 | 围栏的配置参数。 | 406 | want | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 | 407 408**示例** 409 410 ```ts 411 import geolocation from '@ohos.geolocation'; 412 import wantAgent from '@ohos.app.ability.wantAgent'; 413 414 let wantAgentInfo:wantAgent.WantAgentInfo = { 415 wants: [ 416 { 417 bundleName: "com.example.myapplication", 418 abilityName: "EntryAbility", 419 action: "action1" 420 } 421 ], 422 operationType: wantAgent.OperationType.START_ABILITY, 423 requestCode: 0, 424 wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG], 425 }; 426 427 wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { 428 let requestInfo:geolocation.GeofenceRequest = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 31.12, "longitude": 121.11, "radius": 100, "expiration": 10000}}; 429 geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); 430 }); 431 ``` 432 433 434## geolocation.off('fenceStatusChange')<sup>(deprecated)</sup> 435 436off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent): void; 437 438删除一个围栏,并取消订阅该围栏事件。 439 440> **说明:**<br/> 441> 从API version 8开始支持。 442> 从API version 9开始废弃,建议使用[geoLocationManager.off('gnssFenceStatusChange')](js-apis-geoLocationManager.md#geolocationmanageroffgnssfencestatuschange)替代。 443 444**需要权限**:ohos.permission.LOCATION 445 446**系统能力**:SystemCapability.Location.Location.Geofence 447 448**参数**: 449 450 | 参数名 | 类型 | 必填 | 说明 | 451 | -------- | -------- | -------- | -------- | 452 | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 | 453 | request | [GeofenceRequest](#geofencerequestdeprecated) | 是 | 围栏的配置参数。 | 454 | want | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 | 455 456**示例** 457 458 ```ts 459 import geolocation from '@ohos.geolocation'; 460 import wantAgent from '@ohos.app.ability.wantAgent'; 461 462 let wantAgentInfo:wantAgent.WantAgentInfo = { 463 wants: [ 464 { 465 bundleName: "com.example.myapplication", 466 abilityName: "EntryAbility", 467 action: "action1", 468 } 469 ], 470 operationType: wantAgent.OperationType.START_ABILITY, 471 requestCode: 0, 472 wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] 473 }; 474 475 wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { 476 let requestInfo:geolocation.GeofenceRequest = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 31.12, "longitude": 121.11, "radius": 100, "expiration": 10000}}; 477 geolocation.on('fenceStatusChange', requestInfo, wantAgentObj); 478 geolocation.off('fenceStatusChange', requestInfo, wantAgentObj); 479 }); 480 ``` 481 482 483## geolocation.getCurrentLocation<sup>(deprecated)</sup> 484 485getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback<Location>): void 486 487获取当前位置,使用callback回调异步返回结果。 488 489> **说明:**<br/> 490> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation)替代。 491 492**需要权限**:ohos.permission.LOCATION 493 494**系统能力**:SystemCapability.Location.Location.Core 495 496**参数**: 497 498 | 参数名 | 类型 | 必填 | 说明 | 499 | -------- | -------- | -------- | -------- | 500 | request | [CurrentLocationRequest](#currentlocationrequestdeprecated) | 是 | 设置位置请求参数。 | 501 | callback | AsyncCallback<[Location](#locationdeprecated)> | 是 | 用来接收位置信息的回调。 | 502 503**示例** 504 505 ```ts 506 import geolocation from '@ohos.geolocation'; 507 import BusinessError from "@ohos.base" 508 let requestInfo:geolocation.CurrentLocationRequest = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; 509 let locationChange = (err:BusinessError.BusinessError, location:geolocation.Location) => { 510 if (err) { 511 console.log('locationChanger: err=' + JSON.stringify(err)); 512 } 513 if (location) { 514 console.log('locationChanger: location=' + JSON.stringify(location)); 515 } 516 }; 517 geolocation.getCurrentLocation(requestInfo, locationChange); 518 ``` 519 520 521## geolocation.getCurrentLocation<sup>(deprecated)</sup> 522 523getCurrentLocation(callback: AsyncCallback<Location>): void 524 525 526获取当前位置,使用callback回调异步返回结果。 527 528> **说明:**<br/> 529> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation)替代。 530 531**需要权限**:ohos.permission.LOCATION 532 533**系统能力**:SystemCapability.Location.Location.Core 534 535**参数**: 536 537 | 参数名 | 类型 | 必填 | 说明 | 538 | -------- | -------- | -------- | -------- | 539 | callback | AsyncCallback<[Location](#locationdeprecated)> | 是 | 用来接收位置信息的回调。 | 540 541**示例** 542 543 ```ts 544 import geolocation from '@ohos.geolocation'; 545 import BusinessError from "@ohos.base" 546 let locationChange = (err:BusinessError.BusinessError, location:geolocation.Location):void => { 547 if (err) { 548 console.log('locationChanger: err=' + JSON.stringify(err)); 549 } 550 if (location) { 551 console.log('locationChanger: location=' + JSON.stringify(location)); 552 } 553 }; 554 geolocation.getCurrentLocation(locationChange); 555 ``` 556 557 558## geolocation.getCurrentLocation<sup>(deprecated)</sup> 559 560getCurrentLocation(request?: CurrentLocationRequest): Promise<Location> 561 562获取当前位置,使用Promise方式异步返回结果。 563 564> **说明:**<br/> 565> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation-2)替代。 566 567**需要权限**:ohos.permission.LOCATION 568 569**系统能力**:SystemCapability.Location.Location.Core 570 571**参数**: 572 573 | 参数名 | 类型 | 必填 | 说明 | 574 | -------- | -------- | -------- | -------- | 575 | request | [CurrentLocationRequest](#currentlocationrequestdeprecated) | 否 | 设置位置请求参数。 | 576 577**返回值**: 578 579 | 类型 | 说明 | 580 | -------- | -------- | 581 | Promise<[Location](#locationdeprecated)> | 以Promise形式返回位置信息。 | 582 583 584**示例** 585 586 ```ts 587 import geolocation from '@ohos.geolocation'; 588 let requestInfo:geolocation.CurrentLocationRequest = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; 589 geolocation.getCurrentLocation(requestInfo).then((result) => { 590 console.log('current location: ' + JSON.stringify(result)); 591 }); 592 ``` 593 594 595## geolocation.getLastLocation<sup>(deprecated)</sup> 596 597getLastLocation(callback: AsyncCallback<Location>): void 598 599获取上一次位置,使用callback回调异步返回结果。 600 601> **说明:**<br/> 602> 从API version 9开始废弃,建议使用[geoLocationManager.getLastLocation](js-apis-geoLocationManager.md#geolocationmanagergetlastlocation)替代。 603 604**需要权限**:ohos.permission.LOCATION 605 606**系统能力**:SystemCapability.Location.Location.Core 607 608**参数**: 609 610 | 参数名 | 类型 | 必填 | 说明 | 611 | -------- | -------- | -------- | -------- | 612 | callback | AsyncCallback<[Location](#locationdeprecated)> | 是 | 用来接收上次位置的回调。 | 613 614 615**示例** 616 617 ```ts 618 import geolocation from '@ohos.geolocation'; 619 geolocation.getLastLocation((err, data) => { 620 if (err) { 621 console.log('getLastLocation: err=' + JSON.stringify(err)); 622 } 623 if (data) { 624 console.log('getLastLocation: data=' + JSON.stringify(data)); 625 } 626 }); 627 ``` 628 629 630## geolocation.getLastLocation<sup>(deprecated)</sup> 631 632getLastLocation(): Promise<Location> 633 634获取上一次位置,使用Promise方式异步返回结果。 635 636> **说明:**<br/> 637> 从API version 9开始废弃,建议使用[geoLocationManager.getLastLocation](js-apis-geoLocationManager.md#geolocationmanagergetlastlocation)替代。 638 639**需要权限**:ohos.permission.LOCATION 640 641**系统能力**:SystemCapability.Location.Location.Core 642 643**返回值**: 644 645 | 类型 | 说明 | 646 | -------- | -------- | 647 | Promise<[Location](#locationdeprecated)> | 以Promise形式返回上次位置信息。 | 648 649 650**示例** 651 652 ```ts 653 import geolocation from '@ohos.geolocation'; 654 geolocation.getLastLocation().then((result) => { 655 console.log('getLastLocation: result: ' + JSON.stringify(result)); 656 }); 657 ``` 658 659 660## geolocation.isLocationEnabled<sup>(deprecated)</sup> 661 662isLocationEnabled(callback: AsyncCallback<boolean>): void 663 664判断位置服务是否已经打开,使用callback回调异步返回结果。 665 666> **说明:**<br/> 667> 从API version 9开始废弃,建议使用[geoLocationManager.isLocationEnabled](js-apis-geoLocationManager.md#geolocationmanagerislocationenabled)替代。 668 669**需要权限**:ohos.permission.LOCATION 670 671**系统能力**:SystemCapability.Location.Location.Core 672 673**参数**: 674 675 | 参数名 | 类型 | 必填 | 说明 | 676 | -------- | -------- | -------- | -------- | 677 | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | 678 679**示例** 680 681 ```ts 682 import geolocation from '@ohos.geolocation'; 683 geolocation.isLocationEnabled((err, data) => { 684 if (err) { 685 console.log('isLocationEnabled: err=' + JSON.stringify(err)); 686 } 687 if (data) { 688 console.log('isLocationEnabled: data=' + JSON.stringify(data)); 689 } 690 }); 691 ``` 692 693 694## geolocation.isLocationEnabled<sup>(deprecated)</sup> 695 696isLocationEnabled(): Promise<boolean> 697 698判断位置服务是否已经开启,使用Promise方式异步返回结果。 699 700> **说明:**<br/> 701> 从API version 9开始废弃,建议使用[geoLocationManager.isLocationEnabled](js-apis-geoLocationManager.md#geolocationmanagerislocationenabled)替代。 702 703**需要权限**:ohos.permission.LOCATION 704 705**系统能力**:SystemCapability.Location.Location.Core 706 707**返回值**: 708 709 | 类型 | 说明 | 710 | -------- | -------- | 711 | Promise<boolean> | 以Promise形式返回位置服务是否可用的状态。 | 712 713**示例** 714 715 ```ts 716 import geolocation from '@ohos.geolocation'; 717 geolocation.isLocationEnabled().then((result) => { 718 console.log('promise, isLocationEnabled: ' + JSON.stringify(result)); 719 }); 720 ``` 721 722 723## geolocation.requestEnableLocation<sup>(deprecated)</sup> 724 725requestEnableLocation(callback: AsyncCallback<boolean>): void 726 727请求打开位置服务,使用callback回调异步返回结果。 728 729> **说明:**<br/> 730> 从API version 9开始废弃,建议由应用本身弹框请求用户跳转到settings开启位置开关,并且在弹框上写清楚会在什么场景下使用位置信息。 731 732**需要权限**:ohos.permission.LOCATION 733 734**系统能力**:SystemCapability.Location.Location.Core 735 736**参数**: 737 738 | 参数名 | 类型 | 必填 | 说明 | 739 | -------- | -------- | -------- | -------- | 740 | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | 741 742**示例** 743 744 ```ts 745 import geolocation from '@ohos.geolocation'; 746 geolocation.requestEnableLocation((err, data) => { 747 if (err) { 748 console.log('requestEnableLocation: err=' + JSON.stringify(err)); 749 } 750 if (data) { 751 console.log('requestEnableLocation: data=' + JSON.stringify(data)); 752 } 753 }); 754 ``` 755 756 757## geolocation.requestEnableLocation<sup>(deprecated)</sup> 758 759requestEnableLocation(): Promise<boolean> 760 761请求打开位置服务,使用Promise方式异步返回结果。 762 763> **说明:**<br/> 764> 从API version 9开始废弃,建议由应用本身弹框请求用户跳转到settings开启位置开关,并且在弹框上写清楚会在什么场景下使用位置信息。 765 766**需要权限**:ohos.permission.LOCATION 767 768**系统能力**:SystemCapability.Location.Location.Core 769 770**返回值**: 771 772 | 类型 | 说明 | 773 | -------- | -------- | 774 | Promise<boolean> | 以Promise形式返回位置服务是否可用的状态。 | 775 776**示例** 777 778 ```ts 779 import geolocation from '@ohos.geolocation'; 780 geolocation.requestEnableLocation().then((result) => { 781 console.log('promise, requestEnableLocation: ' + JSON.stringify(result)); 782 }); 783 ``` 784 785 786## geolocation.isGeoServiceAvailable<sup>(deprecated)</sup> 787 788isGeoServiceAvailable(callback: AsyncCallback<boolean>): void 789 790判断(逆)地理编码服务状态,使用callback回调异步返回结果。 791 792> **说明:**<br/> 793> 从API version 9开始废弃,建议使用[geoLocationManager.isGeocoderAvailable](js-apis-geoLocationManager.md#geolocationmanagerisgeocoderavailable)替代。 794 795**需要权限**:ohos.permission.LOCATION 796 797**系统能力**:SystemCapability.Location.Location.Geocoder 798 799**参数**: 800 801 | 参数名 | 类型 | 必填 | 说明 | 802 | -------- | -------- | -------- | -------- | 803 | callback | AsyncCallback<boolean> | 是 | 用来接收地理编码服务状态的回调。 | 804 805**示例** 806 807 ```ts 808 import geolocation from '@ohos.geolocation'; 809 geolocation.isGeoServiceAvailable((err, data) => { 810 if (err) { 811 console.log('isGeoServiceAvailable: err=' + JSON.stringify(err)); 812 } 813 if (data) { 814 console.log('isGeoServiceAvailable: data=' + JSON.stringify(data)); 815 } 816 }); 817 ``` 818 819 820## geolocation.isGeoServiceAvailable<sup>(deprecated)</sup> 821 822isGeoServiceAvailable(): Promise<boolean> 823 824判断(逆)地理编码服务状态,使用Promise方式异步返回结果。 825 826> **说明:**<br/> 827> 从API version 9开始废弃,建议使用[geoLocationManager.isGeocoderAvailable](js-apis-geoLocationManager.md#geolocationmanagerisgeocoderavailable)替代。 828 829**需要权限**:ohos.permission.LOCATION 830 831**系统能力**:SystemCapability.Location.Location.Geocoder 832 833**返回值**: 834 835 | 类型 | 说明 | 836 | -------- | -------- | 837 | Promise<boolean> | 以Promise形式返回地理编码服务是否可用的状态。 | 838 839**示例** 840 841 ```ts 842 import geolocation from '@ohos.geolocation'; 843 geolocation.isGeoServiceAvailable().then((result) => { 844 console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result)); 845 }); 846 ``` 847 848 849## geolocation.getAddressesFromLocation<sup>(deprecated)</sup> 850 851getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void 852 853调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。 854 855> **说明:**<br/> 856> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocation](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocation)替代。 857 858**需要权限**:ohos.permission.LOCATION 859 860**系统能力**:SystemCapability.Location.Location.Geocoder 861 862**参数**: 863 864 | 参数名 | 类型 | 必填 | 说明 | 865 | -------- | -------- | -------- | -------- | 866 | request | [ReverseGeoCodeRequest](#reversegeocoderequestdeprecated) | 是 | 设置逆地理编码请求的相关参数。 | 867 | callback | AsyncCallback<Array<[GeoAddress](#geoaddressdeprecated)>> | 是 | 设置接收逆地理编码请求的回调参数。 | 868 869**示例** 870 871 ```ts 872 import geolocation from '@ohos.geolocation'; 873 let reverseGeocodeRequest:geolocation.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; 874 geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { 875 if (err) { 876 console.log('getAddressesFromLocation: err=' + JSON.stringify(err)); 877 } 878 if (data) { 879 console.log('getAddressesFromLocation: data=' + JSON.stringify(data)); 880 } 881 }); 882 ``` 883 884 885## geolocation.getAddressesFromLocation<sup>(deprecated)</sup> 886 887getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>; 888 889调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。 890 891> **说明:**<br/> 892> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocation](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocation-1)替代。 893 894**需要权限**:ohos.permission.LOCATION 895 896**系统能力**:SystemCapability.Location.Location.Geocoder 897 898**参数**: 899 900 | 参数名 | 类型 | 必填 | 说明 | 901 | -------- | -------- | -------- | -------- | 902 | request | [ReverseGeoCodeRequest](#reversegeocoderequestdeprecated) | 是 | 设置逆地理编码请求的相关参数。 | 903 904**返回值**: 905 906 | 类型 | 说明 | 907 | -------- | -------- | 908 | Promise<Array<[GeoAddress](#geoaddressdeprecated)>> | 以Promise形式返回地理描述信息。 | 909 910**示例** 911 912 ```ts 913 import geolocation from '@ohos.geolocation'; 914 let reverseGeocodeRequest:geolocation.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; 915 geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => { 916 console.log('getAddressesFromLocation: ' + JSON.stringify(data)); 917 }); 918 ``` 919 920 921## geolocation.getAddressesFromLocationName<sup>(deprecated)</sup> 922 923getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void 924 925调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。 926 927> **说明:**<br/> 928> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocationName](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocationname)替代。 929 930**需要权限**:ohos.permission.LOCATION 931 932**系统能力**:SystemCapability.Location.Location.Geocoder 933 934**参数**: 935 936 | 参数名 | 类型 | 必填 | 说明 | 937 | -------- | -------- | -------- | -------- | 938 | request | [GeoCodeRequest](#geocoderequestdeprecated) | 是 | 设置地理编码请求的相关参数。 | 939 | callback | AsyncCallback<Array<[GeoAddress](#geoaddressdeprecated)>> | 是 | 设置接收地理编码请求的回调参数。 | 940 941**示例** 942 943 ```ts 944 import geolocation from '@ohos.geolocation'; 945 let geocodeRequest:geolocation.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; 946 geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => { 947 if (err) { 948 console.log('getAddressesFromLocationName: err=' + JSON.stringify(err)); 949 } 950 if (data) { 951 console.log('getAddressesFromLocationName: data=' + JSON.stringify(data)); 952 } 953 }); 954 ``` 955 956 957## geolocation.getAddressesFromLocationName<sup>(deprecated)</sup> 958 959getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>> 960 961调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。 962 963> **说明:**<br/> 964> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocationName](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocationname-1)替代。 965 966**需要权限**:ohos.permission.LOCATION 967 968**系统能力**:SystemCapability.Location.Location.Geocoder 969 970**参数**: 971 972 | 参数名 | 类型 | 必填 | 说明 | 973 | -------- | -------- | -------- | -------- | 974 | request | [GeoCodeRequest](#geocoderequestdeprecated) | 是 | 设置地理编码请求的相关参数。 | 975 976**返回值**: 977 978 | 类型 | 说明 | 979 | -------- | -------- | 980 | Promise<Array<[GeoAddress](#geoaddressdeprecated)>> | 以Promise形式返回地理编码请求的结果。 | 981 982**示例** 983 984 ```ts 985 import geolocation from '@ohos.geolocation'; 986 let geocodeRequest:geolocation.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; 987 geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => { 988 console.log('getAddressesFromLocationName: ' + JSON.stringify(result)); 989 }); 990 ``` 991 992 993## geolocation.getCachedGnssLocationsSize<sup>(deprecated)</sup> 994 995getCachedGnssLocationsSize(callback: AsyncCallback<number>): void; 996 997获取GNSS芯片缓存位置的个数。 998 999> **说明:**<br/> 1000> 从API version 8开始支持。 1001> 从API version 9开始废弃,建议使用[geoLocationManager.getCachedGnssLocationsSize](js-apis-geoLocationManager.md#geolocationmanagergetcachedgnsslocationssize)替代。 1002 1003**需要权限**:ohos.permission.LOCATION 1004 1005**系统能力**:SystemCapability.Location.Location.Gnss 1006 1007**参数**: 1008 1009 | 参数名 | 类型 | 必填 | 说明 | 1010 | -------- | -------- | -------- | -------- | 1011 | callback | AsyncCallback<number> | 是 | 用来接收GNSS芯片缓存位置个数的回调。 | 1012 1013**示例** 1014 1015 ```ts 1016 import geolocation from '@ohos.geolocation'; 1017 geolocation.getCachedGnssLocationsSize((err, size) => { 1018 if (err) { 1019 console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err)); 1020 } 1021 if (size) { 1022 console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size)); 1023 } 1024 }); 1025 ``` 1026 1027 1028## geolocation.getCachedGnssLocationsSize<sup>(deprecated)</sup> 1029 1030getCachedGnssLocationsSize(): Promise<number>; 1031 1032获取GNSS芯片缓存位置的个数。 1033 1034> **说明:**<br/> 1035> 从API version 8开始支持。 1036> 从API version 9开始废弃,建议使用[geoLocationManager.getCachedGnssLocationsSize](js-apis-geoLocationManager.md#geolocationmanagergetcachedgnsslocationssize-1)替代。 1037 1038**需要权限**:ohos.permission.LOCATION 1039 1040**系统能力**:SystemCapability.Location.Location.Gnss 1041 1042**返回值**: 1043 1044 | 类型 | 说明 | 1045 | -------- | -------- | 1046 | Promise<number> | 以Promise形式返回GNSS缓存位置的个数。 | 1047 1048**示例** 1049 1050 ```ts 1051 import geolocation from '@ohos.geolocation'; 1052 geolocation.getCachedGnssLocationsSize().then((result) => { 1053 console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result)); 1054 }); 1055 ``` 1056 1057 1058## geolocation.flushCachedGnssLocations<sup>(deprecated)</sup> 1059 1060flushCachedGnssLocations(callback: AsyncCallback<boolean>): void; 1061 1062读取并清空GNSS芯片所有缓存位置。 1063 1064> **说明:**<br/> 1065> 从API version 8开始支持。 1066> 从API version 9开始废弃,建议使用[geoLocationManager.flushCachedGnssLocations](js-apis-geoLocationManager.md#geolocationmanagerflushcachedgnsslocations)替代。 1067 1068**需要权限**:ohos.permission.LOCATION 1069 1070**系统能力**:SystemCapability.Location.Location.Gnss 1071 1072**参数**: 1073 1074 | 参数名 | 类型 | 必填 | 说明 | 1075 | -------- | -------- | -------- | -------- | 1076 | callback | AsyncCallback<boolean> | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 | 1077 1078**示例** 1079 1080 ```ts 1081 import geolocation from '@ohos.geolocation'; 1082 geolocation.flushCachedGnssLocations((err, result) => { 1083 if (err) { 1084 console.log('flushCachedGnssLocations: err=' + JSON.stringify(err)); 1085 } 1086 if (result) { 1087 console.log('flushCachedGnssLocations: result=' + JSON.stringify(result)); 1088 } 1089 }); 1090 ``` 1091 1092 1093## geolocation.flushCachedGnssLocations<sup>(deprecated)</sup> 1094 1095flushCachedGnssLocations(): Promise<boolean>; 1096 1097读取并清空GNSS芯片所有缓存位置。 1098 1099> **说明:**<br/> 1100> 从API version 8开始支持。 1101> 从API version 9开始废弃,建议使用[geoLocationManager.flushCachedGnssLocations](js-apis-geoLocationManager.md#geolocationmanagerflushcachedgnsslocations-1)替代。 1102 1103**需要权限**:ohos.permission.LOCATION 1104 1105**系统能力**:SystemCapability.Location.Location.Gnss 1106 1107**返回值**: 1108 1109 | 类型 | 说明 | 1110 | -------- | -------- | 1111 | Promise<boolean>| 以Promise形式返回清空所有GNSS缓存位置结果。 | 1112 1113**示例** 1114 1115 ```ts 1116 import geolocation from '@ohos.geolocation'; 1117 geolocation.flushCachedGnssLocations().then((result) => { 1118 console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result)); 1119 }); 1120 ``` 1121 1122 1123## geolocation.sendCommand<sup>(deprecated)</sup> 1124 1125sendCommand(command: LocationCommand, callback: AsyncCallback<boolean>): void; 1126 1127给位置服务子系统的各个部件发送扩展命令。 1128 1129> **说明:**<br/> 1130> 从API version 8开始支持。 1131> 从API version 9开始废弃,建议使用[geoLocationManager.sendCommand](js-apis-geoLocationManager.md#geolocationmanagersendcommand)替代。 1132 1133**需要权限**:ohos.permission.LOCATION 1134 1135**系统能力**:SystemCapability.Location.Location.Core 1136 1137**参数**: 1138 1139 | 参数名 | 类型 | 必填 | 说明 | 1140 | -------- | -------- | -------- | -------- | 1141 | command | [LocationCommand](#locationcommanddeprecated) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1142 | callback | AsyncCallback<boolean> | 是 | 用来接收命令发送的结果。 | 1143 1144**示例** 1145 1146 ```ts 1147 import geolocation from '@ohos.geolocation'; 1148 let requestInfo:geolocation.LocationCommand = {'scenario': 0x301, 'command': "command_1"}; 1149 geolocation.sendCommand(requestInfo, (err, result) => { 1150 if (err) { 1151 console.log('sendCommand: err=' + JSON.stringify(err)); 1152 } 1153 if (result) { 1154 console.log('sendCommand: result=' + JSON.stringify(result)); 1155 } 1156 }); 1157 ``` 1158 1159 1160## geolocation.sendCommand<sup>(deprecated)</sup> 1161 1162sendCommand(command: LocationCommand): Promise<boolean>; 1163 1164给位置服务子系统的各个部件发送扩展命令。 1165 1166> **说明:**<br/> 1167> 从API version 8开始支持。 1168> 从API version 9开始废弃,建议使用[geoLocationManager.sendCommand](js-apis-geoLocationManager.md#geolocationmanagersendcommand)替代。 1169 1170**需要权限**:ohos.permission.LOCATION 1171 1172**系统能力**:SystemCapability.Location.Location.Core 1173 1174**参数**: 1175 1176 | 参数名 | 类型 | 必填 | 说明 | 1177 | -------- | -------- | -------- | -------- | 1178 | command | [LocationCommand](#locationcommanddeprecated) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1179 1180**返回值**: 1181 1182 | 类型 | 说明 | 1183 | -------- | -------- | 1184 | Promise<boolean> | 以Promise形式返回命令发送成功或失败结果。 | 1185 1186**示例** 1187 1188 ```ts 1189 import geolocation from '@ohos.geolocation'; 1190 let requestInfo:geolocation.LocationCommand = {'scenario': 0x301, 'command': "command_1"}; 1191 geolocation.sendCommand(requestInfo).then((result) => { 1192 console.log('promise, sendCommand: ' + JSON.stringify(result)); 1193 }); 1194 ``` 1195 1196 1197## ReverseGeoCodeRequest<sup>(deprecated)</sup> 1198 1199逆地理编码请求参数。 1200 1201> **说明:**<br/> 1202> 从API version 9开始废弃,建议使用[geoLocationManager.ReverseGeoCodeRequest](js-apis-geoLocationManager.md#reversegeocoderequest)替代。 1203 1204**需要权限**:ohos.permission.LOCATION 1205 1206**系统能力**:SystemCapability.Location.Location.Geocoder 1207 1208| 名称 | 类型 | 可读 | 可写 | 说明 | 1209| -------- | -------- | -------- | -------- | -------- | 1210| locale | string | 是 | 是 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1211| latitude | number | 是 | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1212| longitude | number | 是 | 是 | 表示经度信息,正值表示东经,负值表示西经。取值范围为-180到180。 | 1213| maxItems | number | 是 | 是 | 指定返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 | 1214 1215 1216## GeoCodeRequest<sup>(deprecated)</sup> 1217 1218地理编码请求参数。 1219 1220> **说明:**<br/> 1221> 从API version 9开始废弃,建议使用[geoLocationManager.GeoCodeRequest](js-apis-geoLocationManager.md#geocoderequest)替代。 1222 1223**需要权限**:ohos.permission.LOCATION 1224 1225**系统能力**:SystemCapability.Location.Location.Geocoder 1226 1227| 名称 | 类型 | 可读|可写 | 说明 | 1228| -------- | -------- | -------- | -------- | -------- | 1229| locale | string | 是 | 是 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1230| description | string | 是 | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 | 1231| maxItems | number | 是 | 是 | 表示返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 | 1232| minLatitude | number | 是 | 是 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。取值范围为-90到90。 | 1233| minLongitude | number | 是 | 是 | 表示最小经度信息。取值范围为-180到180。 | 1234| maxLatitude | number | 是 | 是 | 表示最大纬度信息。取值范围为-90到90。 | 1235| maxLongitude | number | 是 | 是 | 表示最大经度信息。取值范围为-180到180。 | 1236 1237 1238## GeoAddress<sup>(deprecated)</sup> 1239 1240地理编码地址信息。 1241 1242> **说明:**<br/> 1243> 从API version 9开始废弃,建议使用[geoLocationManager.GeoAddress](js-apis-geoLocationManager.md#geoaddress)替代。 1244 1245**需要权限**:ohos.permission.LOCATION 1246 1247**系统能力**:SystemCapability.Location.Location.Geocoder 1248 1249| 名称 | 类型 | 可读|可写 | 说明 | 1250| -------- | -------- | -------- | -------- | -------- | 1251| latitude<sup>7+</sup> | number | 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1252| longitude<sup>7+</sup> | number | 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 | 1253| locale<sup>7+</sup> | string | 是 | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1254| placeName<sup>7+</sup> | string | 是 | 否 | 表示地区信息。 | 1255| countryCode<sup>7+</sup> | string | 是 | 否 | 表示国家码信息。 | 1256| countryName<sup>7+</sup> | string | 是 | 否 | 表示国家信息。 | 1257| administrativeArea<sup>7+</sup> | string | 是 | 否 | 表示省份区域信息。 | 1258| subAdministrativeArea<sup>7+</sup> | string | 是 | 否 | 表示表示子区域信息。 | 1259| locality<sup>7+</sup> | string | 是 | 否 | 表示城市信息。 | 1260| subLocality<sup>7+</sup> | string | 是 | 否 | 表示子城市信息。 | 1261| roadName<sup>7+</sup> | string | 是 | 否 | 表示路名信息。 | 1262| subRoadName<sup>7+</sup> | string | 是 | 否 | 表示子路名信息。 | 1263| premises<sup>7+</sup> | string | 是 | 否 | 表示门牌号信息。 | 1264| postalCode<sup>7+</sup> | string | 是 | 否 | 表示邮政编码信息。 | 1265| phoneNumber<sup>7+</sup> | string | 是 | 否| 表示联系方式信息。 | 1266| addressUrl<sup>7+</sup> | string | 是 | 否 | 表示位置信息附件的网址信息。 | 1267| descriptions<sup>7+</sup> | Array<string> | 是 | 否 | 表示附加的描述信息。 | 1268| descriptionsSize<sup>7+</sup> | number | 是 | 否 | 表示附加的描述信息数量。取值范围为大于等于0,推荐该值小于10。 | 1269 1270 1271## LocationRequest<sup>(deprecated)</sup> 1272 1273位置信息请求参数。 1274 1275> **说明:**<br/> 1276> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequest](js-apis-geoLocationManager.md#locationrequest)替代。 1277 1278**需要权限**:ohos.permission.LOCATION 1279 1280**系统能力**:SystemCapability.Location.Location.Core 1281 1282| 名称 | 类型 | 可读|可写 | 说明 | 1283| -------- | -------- | -------- | -------- | -------- | 1284| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示优先级信息。取值范围见[LocationRequestPriority](#locationrequestprioritydeprecated)的定义。 | 1285| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示场景信息。取值范围见[LocationRequestScenario](#locationrequestscenariodeprecated)的定义。 | 1286| timeInterval | number | 是 | 是 | 表示上报位置信息的时间间隔,单位是秒。取值范围为大于0。 | 1287| distanceInterval | number | 是 | 是 | 表示上报位置信息的距离间隔。单位是米,取值范围为大于0。 | 1288| maxAccuracy | number | 是 | 是 | 表示精度信息。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。取值范围为大于0。 | 1289 1290 1291## CurrentLocationRequest<sup>(deprecated)</sup> 1292 1293当前位置信息请求参数。 1294 1295> **说明:**<br/> 1296> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#currentlocationrequest)替代。 1297 1298**需要权限**:ohos.permission.LOCATION 1299 1300**系统能力**:SystemCapability.Location.Location.Core 1301 1302| 名称 | 类型 | 可读|可写 | 说明 | 1303| -------- | -------- | -------- | -------- | -------- | 1304| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示优先级信息。取值范围见[LocationRequestPriority](#locationrequestprioritydeprecated)的定义。 | 1305| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示场景信息。取值范围见[LocationRequestScenario](#locationrequestscenariodeprecated)的定义。 | 1306| maxAccuracy | number | 是 | 是| 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。取值范围为大于0。 | 1307| timeoutMs | number | 是 | 是 | 表示超时时间,单位是毫秒,最小为1000毫秒。取值范围为大于等于1000。 | 1308 1309 1310## SatelliteStatusInfo<sup>(deprecated)</sup> 1311 1312卫星状态信息。 1313 1314> **说明:**<br/> 1315> 从API version 8开始支持。 1316> 从API version 9开始废弃,建议使用[geoLocationManager.SatelliteStatusInfo](js-apis-geoLocationManager.md#satellitestatusinfo)替代。 1317 1318**需要权限**:ohos.permission.LOCATION 1319 1320**系统能力**:SystemCapability.Location.Location.Gnss 1321 1322| 名称 | 类型 | 可读|可写 | 说明 | 1323| -------- | -------- | -------- | -------- | -------- | 1324| satellitesNumber | number | 是 | 否 | 表示卫星个数。取值范围为大于等于0。 | 1325| satelliteIds | Array<number> | 是 | 否 | 表示每个卫星的ID,数组类型。取值范围为大于等于0。 | 1326| carrierToNoiseDensitys | Array<number> | 是 | 否 | 表示载波噪声功率谱密度比,即cn0。取值范围为大于0。 | 1327| altitudes | Array<number> | 是 | 否 | 表示卫星高度角信息。单位是“度”,取值范围为-90到90。 | 1328| azimuths | Array<number> | 是 | 否 | 表示方位角。单位是“度”,取值范围为0到360。 | 1329| carrierFrequencies | Array<number> | 是 | 否 | 表示载波频率。单位是Hz,取值范围为大于等于0。 | 1330 1331 1332## CachedGnssLocationsRequest<sup>(deprecated)</sup> 1333 1334请求订阅GNSS缓存位置上报功能接口的配置参数。 1335 1336> **说明:**<br/> 1337> 从API version 8开始支持。 1338> 从API version 9开始废弃,建议使用[geoLocationManager.CachedGnssLocationsRequest](js-apis-geoLocationManager.md#cachedgnsslocationsrequest)替代。 1339 1340**需要权限**:ohos.permission.LOCATION 1341 1342**系统能力**:SystemCapability.Location.Location.Gnss 1343 1344| 名称 | 类型 | 可读|可写 | 说明 | 1345| -------- | -------- | -------- | -------- | -------- | 1346| reportingPeriodSec | number | 是 | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。取值范围为大于0。 | 1347| wakeUpCacheQueueFull | boolean | 是 | 是 | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 | 1348 1349 1350## Geofence<sup>(deprecated)</sup> 1351 1352GNSS围栏的配置参数。目前只支持圆形围栏。 1353 1354> **说明:**<br/> 1355> 从API version 8开始支持。 1356> 从API version 9开始废弃,建议使用[geoLocationManager.Geofence](js-apis-geoLocationManager.md#geofence)替代。 1357 1358**需要权限**:ohos.permission.LOCATION 1359 1360**系统能力**:SystemCapability.Location.Location.Geofence 1361 1362| 名称 | 类型 | 可读|可写 | 说明 | 1363| -------- | -------- | -------- | -------- | -------- | 1364| latitude | number | 是 | 是 |表示纬度。取值范围为-90到90。 | 1365| longitude | number | 是 |是 | 表示经度。取值范围为-180到180。 | 1366| radius | number | 是 |是 | 表示圆形围栏的半径。单位是米,取值范围为大于0。 | 1367| expiration | number | 是 |是 | 围栏存活的时间,单位是毫秒。取值范围为大于0。 | 1368 1369 1370## GeofenceRequest<sup>(deprecated)</sup> 1371 1372请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。 1373 1374> **说明:**<br/> 1375> 从API version 8开始支持。 1376> 从API version 9开始废弃,建议使用[geoLocationManager.GeofenceRequest](js-apis-geoLocationManager.md#geofencerequest)替代。 1377 1378**需要权限**:ohos.permission.LOCATION 1379 1380**系统能力**:SystemCapability.Location.Location.Geofence 1381 1382| 名称 | 类型 | 可读|可写 | 说明 | 1383| -------- | -------- | -------- | -------- | -------- | 1384| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示位置信息优先级。 | 1385| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示定位场景。 | 1386| geofence | [Geofence](#geofencedeprecated)| 是 | 是 | 表示围栏信息。 | 1387 1388 1389## LocationCommand<sup>(deprecated)</sup> 1390 1391扩展命令参数。 1392 1393> **说明:**<br/> 1394> 从API version 8开始支持。 1395> 从API version 9开始废弃,建议使用[geoLocationManager.LocationCommand](js-apis-geoLocationManager.md#locationcommand)替代。 1396 1397**需要权限**:ohos.permission.LOCATION 1398 1399**系统能力**:SystemCapability.Location.Location.Core 1400 1401| 名称 | 类型 | 可读|可写 | 说明 | 1402| -------- | -------- | -------- | -------- | -------- | 1403| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示定位场景。 | 1404| command | string | 是 | 是 | 扩展命令字符串。 | 1405 1406 1407## Location<sup>(deprecated)</sup> 1408 1409位置信息。 1410 1411> **说明:**<br/> 1412> 从API version 9开始废弃,建议使用[geoLocationManager.Location](js-apis-geoLocationManager.md#location)替代。 1413 1414**需要权限**:ohos.permission.LOCATION 1415 1416**系统能力**:SystemCapability.Location.Location.Core 1417 1418| 名称 | 类型 | 可读|可写 | 说明 | 1419| -------- | -------- | -------- | -------- | -------- | 1420| latitude<sup>7+</sup> | number | 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1421| longitude<sup>7+</sup> | number | 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 | 1422| altitude<sup>7+</sup> | number | 是 | 否 | 表示高度信息,单位米。 | 1423| accuracy<sup>7+</sup> | number | 是 | 否 | 表示精度信息,单位米。 | 1424| speed<sup>7+</sup> | number | 是 | 否 | 表示速度信息,单位米每秒。 | 1425| timeStamp<sup>7+</sup> | number | 是 | 否 | 表示位置时间戳,UTC格式。 | 1426| direction<sup>7+</sup> | number | 是 | 否 | 表示航向信息。单位是“度”,取值范围为0到360。 | 1427| timeSinceBoot<sup>7+</sup> | number | 是 | 否 | 表示位置时间戳,开机时间格式。 | 1428| additions<sup>7+</sup> | Array<string> | 是 | 否 | 附加信息。 | 1429| additionSize<sup>7+</sup> | number | 是 | 否 | 附加信息数量。取值范围为大于等于0。 | 1430 1431 1432## LocationPrivacyType<sup>(deprecated)</sup> 1433 1434定位服务隐私协议类型。 1435 1436> **说明:**<br/> 1437> 从API version 8开始支持。 1438> 从API version 9开始废弃,替代接口geoLocationManager.LocationPrivacyType仅供系统应用使用。 1439 1440**需要权限**:ohos.permission.LOCATION 1441 1442**系统能力**:SystemCapability.Location.Location.Core 1443 1444| 名称 | 值 | 说明 | 1445| -------- | -------- | -------- | 1446| OTHERS | 0 | 其他场景。预留字段。 | 1447| STARTUP | 1 | 开机向导场景下的隐私协议。在开机时弹出协议,提醒用户阅读并选择是否授权。 | 1448| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 | 1449 1450 1451## LocationRequestPriority<sup>(deprecated)</sup> 1452 1453位置请求中位置信息优先级类型。 1454 1455> **说明:**<br/> 1456> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequestPriority](js-apis-geoLocationManager.md#locationrequestpriority)替代。 1457 1458**需要权限**:ohos.permission.LOCATION 1459 1460**系统能力**:SystemCapability.Location.Location.Core 1461 1462| 名称 | 值 | 说明 | 1463| -------- | -------- | -------- | 1464| UNSET | 0x200 | 表示未设置优先级,表示[LocationRequestPriority](#locationrequestprioritydeprecated)无效。 | 1465| ACCURACY | 0x201 | 表示精度优先。<br/>定位精度优先策略主要以GNSS定位技术为主,在开阔场景下可以提供米级的定位精度,具体性能指标依赖用户设备的定位硬件能力,但在室内等强遮蔽定位场景下,无法提供准确的位置服务。 | 1466| LOW_POWER | 0x202 | 表示低功耗优先。<br/>低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。 | 1467| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到一个位置,可以将优先级设置为该字段。<br/>快速定位优先策略会同时使用GNSS定位、基站定位和WLAN、蓝牙定位技术,以便室内和户外场景下,通过此策略都可以获得位置结果,当各种定位技术都有提供位置结果时,系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用,对设备的硬件资源消耗较大,功耗也较大。 | 1468 1469 1470## LocationRequestScenario<sup>(deprecated)</sup> 1471 1472 位置请求中定位场景类型。 1473 1474> **说明:**<br/> 1475> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequestScenario](js-apis-geoLocationManager.md#locationrequestscenario)替代。 1476 1477**需要权限**:ohos.permission.LOCATION 1478 1479**系统能力**:SystemCapability.Location.Location.Core 1480 1481| 名称 | 值 | 说明 | 1482| -------- | -------- | -------- | 1483| UNSET | 0x300 | 表示未设置场景信息。<br/>表示[LocationRequestScenario](#locationrequestscenariodeprecated)字段无效。 | 1484| NAVIGATION | 0x301 | 表示导航场景。<br/>适用于在户外定位设备实时位置的场景,如车载、步行导航。<br/>在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务<br/>此场景默认以最小1秒间隔上报定位结果。 | 1485| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。<br/>适用于记录用户位置轨迹的场景,如运动类应用记录轨迹功能。主要使用GNSS定位技术提供定位服务。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1486| CAR_HAILING | 0x303 | 表示打车场景。<br/>适用于用户出行打车时定位当前位置的场景,如网约车类应用。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1487| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。<br/>适用于不需要定位用户精确位置的使用场景,如新闻资讯、网购、点餐类应用,做推荐、推送时定位用户大致位置即可。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1488| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 | 1489 1490 1491## GeoLocationErrorCode<sup>(deprecated)</sup> 1492 1493位置服务中的错误码信息。 1494 1495> **说明:**<br/> 1496> 从API version 9开始废弃,建议使用[位置服务子系统错误码](errorcode-geoLocationManager.md)替代。 1497 1498**需要权限**:ohos.permission.LOCATION 1499 1500**系统能力**:SystemCapability.Location.Location.Core 1501 1502| 名称 | 值 | 说明 | 1503| -------- | -------- | -------- | 1504| INPUT_PARAMS_ERROR<sup>7+</sup> | 101 | 表示输入参数错误。 | 1505| REVERSE_GEOCODE_ERROR<sup>7+</sup> | 102 | 表示逆地理编码接口调用失败。 | 1506| GEOCODE_ERROR<sup>7+</sup> | 103 | 表示地理编码接口调用失败。 | 1507| LOCATOR_ERROR<sup>7+</sup> | 104 | 表示定位失败。 | 1508| LOCATION_SWITCH_ERROR<sup>7+</sup> | 105 | 表示定位开关。 | 1509| LAST_KNOWN_LOCATION_ERROR<sup>7+</sup> | 106 | 表示获取上次位置失败。 | 1510| LOCATION_REQUEST_TIMEOUT_ERROR<sup>7+</sup> | 107 | 表示单次定位,没有在指定时间内返回位置。 |