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