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 = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; 72 let locationChange = (location) => { 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 = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; 105 let locationChange = (location) => { 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) => { 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) => { 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) => { 206 console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); 207 } 208 let requestInfo = {'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) => { 240 console.log('cachedGnssLocationsReporting: locations: ' + JSON.stringify(locations)); 241 } 242 let requestInfo = {'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) => { 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) => { 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) => { 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) => { 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 = { 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 = {'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 = { 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 = {'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 let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; 503 let locationChange = (err, location) => { 504 if (err) { 505 console.log('locationChanger: err=' + JSON.stringify(err)); 506 } 507 if (location) { 508 console.log('locationChanger: location=' + JSON.stringify(location)); 509 } 510 }; 511 geolocation.getCurrentLocation(requestInfo, locationChange); 512 ``` 513 514 515## geolocation.getCurrentLocation<sup>(deprecated)</sup> 516 517getCurrentLocation(callback: AsyncCallback<Location>): void 518 519 520获取当前位置,使用callback回调异步返回结果。 521 522> **说明:**<br/> 523> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation)替代。 524 525**需要权限**:ohos.permission.LOCATION 526 527**系统能力**:SystemCapability.Location.Location.Core 528 529**参数**: 530 531 | 参数名 | 类型 | 必填 | 说明 | 532 | -------- | -------- | -------- | -------- | 533 | callback | AsyncCallback<[Location](#locationdeprecated)> | 是 | 用来接收位置信息的回调。 | 534 535**示例** 536 537 ```ts 538 import geolocation from '@ohos.geolocation'; 539 let locationChange = (err, location) => { 540 if (err) { 541 console.log('locationChanger: err=' + JSON.stringify(err)); 542 } 543 if (location) { 544 console.log('locationChanger: location=' + JSON.stringify(location)); 545 } 546 }; 547 geolocation.getCurrentLocation(locationChange); 548 ``` 549 550 551## geolocation.getCurrentLocation<sup>(deprecated)</sup> 552 553getCurrentLocation(request?: CurrentLocationRequest): Promise<Location> 554 555获取当前位置,使用Promise方式异步返回结果。 556 557> **说明:**<br/> 558> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation-2)替代。 559 560**需要权限**:ohos.permission.LOCATION 561 562**系统能力**:SystemCapability.Location.Location.Core 563 564**参数**: 565 566 | 参数名 | 类型 | 必填 | 说明 | 567 | -------- | -------- | -------- | -------- | 568 | request | [CurrentLocationRequest](#currentlocationrequestdeprecated) | 否 | 设置位置请求参数。 | 569 570**返回值**: 571 572 | 参数名 | 类型 | 必填 | 说明 | 573 | -------- | -------- | -------- | -------- | 574 | Promise<[Location](#locationdeprecated)> |[Location](#locationdeprecated)|NA| 返回位置信息。 | 575 576 577**示例** 578 579 ```ts 580 import geolocation from '@ohos.geolocation'; 581 let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0}; 582 geolocation.getCurrentLocation(requestInfo).then((result) => { 583 console.log('current location: ' + JSON.stringify(result)); 584 }); 585 ``` 586 587 588## geolocation.getLastLocation<sup>(deprecated)</sup> 589 590getLastLocation(callback: AsyncCallback<Location>): void 591 592获取上一次位置,使用callback回调异步返回结果。 593 594> **说明:**<br/> 595> 从API version 9开始废弃,建议使用[geoLocationManager.getLastLocation](js-apis-geoLocationManager.md#geolocationmanagergetlastlocation)替代。 596 597**需要权限**:ohos.permission.LOCATION 598 599**系统能力**:SystemCapability.Location.Location.Core 600 601**参数**: 602 603 | 参数名 | 类型 | 必填 | 说明 | 604 | -------- | -------- | -------- | -------- | 605 | callback | AsyncCallback<[Location](#locationdeprecated)> | 是 | 用来接收上次位置的回调。 | 606 607 608**示例** 609 610 ```ts 611 import geolocation from '@ohos.geolocation'; 612 geolocation.getLastLocation((err, data) => { 613 if (err) { 614 console.log('getLastLocation: err=' + JSON.stringify(err)); 615 } 616 if (data) { 617 console.log('getLastLocation: data=' + JSON.stringify(data)); 618 } 619 }); 620 ``` 621 622 623## geolocation.getLastLocation<sup>(deprecated)</sup> 624 625getLastLocation(): Promise<Location> 626 627获取上一次位置,使用Promise方式异步返回结果。 628 629> **说明:**<br/> 630> 从API version 9开始废弃,建议使用[geoLocationManager.getLastLocation](js-apis-geoLocationManager.md#geolocationmanagergetlastlocation)替代。 631 632**需要权限**:ohos.permission.LOCATION 633 634**系统能力**:SystemCapability.Location.Location.Core 635 636**返回值**: 637 638 | 参数名 | 类型 | 必填 | 说明 | 639 | -------- | -------- | -------- | -------- | 640 | Promise<[Location](#locationdeprecated)> | [Location](#locationdeprecated)|NA|返回上次位置信息。 | 641 642 643**示例** 644 645 ```ts 646 import geolocation from '@ohos.geolocation'; 647 geolocation.getLastLocation().then((result) => { 648 console.log('getLastLocation: result: ' + JSON.stringify(result)); 649 }); 650 ``` 651 652 653## geolocation.isLocationEnabled<sup>(deprecated)</sup> 654 655isLocationEnabled(callback: AsyncCallback<boolean>): void 656 657判断位置服务是否已经打开,使用callback回调异步返回结果。 658 659> **说明:**<br/> 660> 从API version 9开始废弃,建议使用[geoLocationManager.isLocationEnabled](js-apis-geoLocationManager.md#geolocationmanagerislocationenabled)替代。 661 662**需要权限**:ohos.permission.LOCATION 663 664**系统能力**:SystemCapability.Location.Location.Core 665 666**参数**: 667 668 | 参数名 | 类型 | 必填 | 说明 | 669 | -------- | -------- | -------- | -------- | 670 | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | 671 672**示例** 673 674 ```ts 675 import geolocation from '@ohos.geolocation'; 676 geolocation.isLocationEnabled((err, data) => { 677 if (err) { 678 console.log('isLocationEnabled: err=' + JSON.stringify(err)); 679 } 680 if (data) { 681 console.log('isLocationEnabled: data=' + JSON.stringify(data)); 682 } 683 }); 684 ``` 685 686 687## geolocation.isLocationEnabled<sup>(deprecated)</sup> 688 689isLocationEnabled(): Promise<boolean> 690 691判断位置服务是否已经开启,使用Promise方式异步返回结果。 692 693> **说明:**<br/> 694> 从API version 9开始废弃,建议使用[geoLocationManager.isLocationEnabled](js-apis-geoLocationManager.md#geolocationmanagerislocationenabled)替代。 695 696**需要权限**:ohos.permission.LOCATION 697 698**系统能力**:SystemCapability.Location.Location.Core 699 700**返回值**: 701 702 | 参数名 | 类型 | 必填 | 说明 | 703 | -------- | -------- | -------- | -------- | 704 | Promise<boolean> | boolean|NA|返回位置服务是否可用的状态。 | 705 706**示例** 707 708 ```ts 709 import geolocation from '@ohos.geolocation'; 710 geolocation.isLocationEnabled().then((result) => { 711 console.log('promise, isLocationEnabled: ' + JSON.stringify(result)); 712 }); 713 ``` 714 715 716## geolocation.requestEnableLocation<sup>(deprecated)</sup> 717 718requestEnableLocation(callback: AsyncCallback<boolean>): void 719 720请求打开位置服务,使用callback回调异步返回结果。 721 722> **说明:**<br/> 723> 从API version 9开始废弃,建议由应用本身弹框请求用户跳转到settings开启位置开关,并且在弹框上写清楚会在什么场景下使用位置信息。 724 725**需要权限**:ohos.permission.LOCATION 726 727**系统能力**:SystemCapability.Location.Location.Core 728 729**参数**: 730 731 | 参数名 | 类型 | 必填 | 说明 | 732 | -------- | -------- | -------- | -------- | 733 | callback | AsyncCallback<boolean> | 是 | 用来接收位置服务状态的回调。 | 734 735**示例** 736 737 ```ts 738 import geolocation from '@ohos.geolocation'; 739 geolocation.requestEnableLocation((err, data) => { 740 if (err) { 741 console.log('requestEnableLocation: err=' + JSON.stringify(err)); 742 } 743 if (data) { 744 console.log('requestEnableLocation: data=' + JSON.stringify(data)); 745 } 746 }); 747 ``` 748 749 750## geolocation.requestEnableLocation<sup>(deprecated)</sup> 751 752requestEnableLocation(): Promise<boolean> 753 754请求打开位置服务,使用Promise方式异步返回结果。 755 756> **说明:**<br/> 757> 从API version 9开始废弃,建议由应用本身弹框请求用户跳转到settings开启位置开关,并且在弹框上写清楚会在什么场景下使用位置信息。 758 759**需要权限**:ohos.permission.LOCATION 760 761**系统能力**:SystemCapability.Location.Location.Core 762 763**返回值**: 764 765 | 参数名 | 类型 | 必填 | 说明 | 766 | -------- | -------- | -------- | -------- | 767 | Promise<boolean> | boolean|NA|返回位置服务是否可用。 | 768 769**示例** 770 771 ```ts 772 import geolocation from '@ohos.geolocation'; 773 geolocation.requestEnableLocation().then((result) => { 774 console.log('promise, requestEnableLocation: ' + JSON.stringify(result)); 775 }); 776 ``` 777 778 779## geolocation.isGeoServiceAvailable<sup>(deprecated)</sup> 780 781isGeoServiceAvailable(callback: AsyncCallback<boolean>): void 782 783判断(逆)地理编码服务状态,使用callback回调异步返回结果。 784 785> **说明:**<br/> 786> 从API version 9开始废弃,建议使用[geoLocationManager.isGeocoderAvailable](js-apis-geoLocationManager.md#geolocationmanagerisgeocoderavailable)替代。 787 788**需要权限**:ohos.permission.LOCATION 789 790**系统能力**:SystemCapability.Location.Location.Geocoder 791 792**参数**: 793 794 | 参数名 | 类型 | 必填 | 说明 | 795 | -------- | -------- | -------- | -------- | 796 | callback | AsyncCallback<boolean> | 是 | 用来接收地理编码服务状态的回调。 | 797 798**示例** 799 800 ```ts 801 import geolocation from '@ohos.geolocation'; 802 geolocation.isGeoServiceAvailable((err, data) => { 803 if (err) { 804 console.log('isGeoServiceAvailable: err=' + JSON.stringify(err)); 805 } 806 if (data) { 807 console.log('isGeoServiceAvailable: data=' + JSON.stringify(data)); 808 } 809 }); 810 ``` 811 812 813## geolocation.isGeoServiceAvailable<sup>(deprecated)</sup> 814 815isGeoServiceAvailable(): Promise<boolean> 816 817判断(逆)地理编码服务状态,使用Promise方式异步返回结果。 818 819> **说明:**<br/> 820> 从API version 9开始废弃,建议使用[geoLocationManager.isGeocoderAvailable](js-apis-geoLocationManager.md#geolocationmanagerisgeocoderavailable)替代。 821 822**需要权限**:ohos.permission.LOCATION 823 824**系统能力**:SystemCapability.Location.Location.Geocoder 825 826**返回值**: 827 828 | 参数名 | 类型 | 必填 | 说明 | 829 | -------- | -------- | -------- | -------- | 830 | Promise<boolean> |boolean|NA| 返回地理编码服务是否可用的状态。 | 831 832**示例** 833 834 ```ts 835 import geolocation from '@ohos.geolocation'; 836 geolocation.isGeoServiceAvailable().then((result) => { 837 console.log('promise, isGeoServiceAvailable: ' + JSON.stringify(result)); 838 }); 839 ``` 840 841 842## geolocation.getAddressesFromLocation<sup>(deprecated)</sup> 843 844getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void 845 846调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。 847 848> **说明:**<br/> 849> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocation](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocation)替代。 850 851**需要权限**:ohos.permission.LOCATION 852 853**系统能力**:SystemCapability.Location.Location.Geocoder 854 855**参数**: 856 857 | 参数名 | 类型 | 必填 | 说明 | 858 | -------- | -------- | -------- | -------- | 859 | request | [ReverseGeoCodeRequest](#reversegeocoderequestdeprecated) | 是 | 设置逆地理编码请求的相关参数。 | 860 | callback | AsyncCallback<Array<[GeoAddress](#geoaddressdeprecated)>> | 是 | 设置接收逆地理编码请求的回调参数。 | 861 862**示例** 863 864 ```ts 865 import geolocation from '@ohos.geolocation'; 866 let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; 867 geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { 868 if (err) { 869 console.log('getAddressesFromLocation: err=' + JSON.stringify(err)); 870 } 871 if (data) { 872 console.log('getAddressesFromLocation: data=' + JSON.stringify(data)); 873 } 874 }); 875 ``` 876 877 878## geolocation.getAddressesFromLocation<sup>(deprecated)</sup> 879 880getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>; 881 882调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。 883 884> **说明:**<br/> 885> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocation](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocation-1)替代。 886 887**需要权限**:ohos.permission.LOCATION 888 889**系统能力**:SystemCapability.Location.Location.Geocoder 890 891**参数**: 892 893 | 参数名 | 类型 | 必填 | 说明 | 894 | -------- | -------- | -------- | -------- | 895 | request | [ReverseGeoCodeRequest](#reversegeocoderequestdeprecated) | 是 | 设置逆地理编码请求的相关参数。 | 896 897**返回值**: 898 899 | 参数名 | 类型 | 必填 | 说明 | 900 | -------- | -------- | -------- | -------- | 901 | Promise<Array<[GeoAddress](#geoaddressdeprecated)>> | Array<[GeoAddress](#geoaddressdeprecated)>|NA|返回地理描述信息。 | 902 903**示例** 904 905 ```ts 906 import geolocation from '@ohos.geolocation'; 907 let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; 908 geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => { 909 console.log('getAddressesFromLocation: ' + JSON.stringify(data)); 910 }); 911 ``` 912 913 914## geolocation.getAddressesFromLocationName<sup>(deprecated)</sup> 915 916getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void 917 918调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。 919 920> **说明:**<br/> 921> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocationName](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocationname)替代。 922 923**需要权限**:ohos.permission.LOCATION 924 925**系统能力**:SystemCapability.Location.Location.Geocoder 926 927**参数**: 928 929 | 参数名 | 类型 | 必填 | 说明 | 930 | -------- | -------- | -------- | -------- | 931 | request | [GeoCodeRequest](#geocoderequestdeprecated) | 是 | 设置地理编码请求的相关参数。 | 932 | callback | AsyncCallback<Array<[GeoAddress](#geoaddressdeprecated)>> | 是 | 设置接收地理编码请求的回调参数。 | 933 934**示例** 935 936 ```ts 937 import geolocation from '@ohos.geolocation'; 938 let geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; 939 geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => { 940 if (err) { 941 console.log('getAddressesFromLocationName: err=' + JSON.stringify(err)); 942 } 943 if (data) { 944 console.log('getAddressesFromLocationName: data=' + JSON.stringify(data)); 945 } 946 }); 947 ``` 948 949 950## geolocation.getAddressesFromLocationName<sup>(deprecated)</sup> 951 952getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>> 953 954调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。 955 956> **说明:**<br/> 957> 从API version 9开始废弃,建议使用[geoLocationManager.getAddressesFromLocationName](js-apis-geoLocationManager.md#geolocationmanagergetaddressesfromlocationname-1)替代。 958 959**需要权限**:ohos.permission.LOCATION 960 961**系统能力**:SystemCapability.Location.Location.Geocoder 962 963**参数**: 964 965 | 参数名 | 类型 | 必填 | 说明 | 966 | -------- | -------- | -------- | -------- | 967 | request | [GeoCodeRequest](#geocoderequestdeprecated) | 是 | 设置地理编码请求的相关参数。 | 968 969**返回值**: 970 971 | 参数名 | 类型 | 必填 | 说明 | 972 | -------- | -------- | -------- | -------- | 973 | Promise<Array<[GeoAddress](#geoaddressdeprecated)>> | Array<[GeoAddress](#geoaddressdeprecated)>|NA|设置接收地理编码请求的回调参数。 | 974 975**示例** 976 977 ```ts 978 import geolocation from '@ohos.geolocation'; 979 let geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1}; 980 geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => { 981 console.log('getAddressesFromLocationName: ' + JSON.stringify(result)); 982 }); 983 ``` 984 985 986## geolocation.getCachedGnssLocationsSize<sup>(deprecated)</sup> 987 988getCachedGnssLocationsSize(callback: AsyncCallback<number>): void; 989 990获取GNSS芯片缓存位置的个数。 991 992> **说明:**<br/> 993> 从API version 8开始支持。 994> 从API version 9开始废弃,建议使用[geoLocationManager.getCachedGnssLocationsSize](js-apis-geoLocationManager.md#geolocationmanagergetcachedgnsslocationssize)替代。 995 996**需要权限**:ohos.permission.LOCATION 997 998**系统能力**:SystemCapability.Location.Location.Gnss 999 1000**参数**: 1001 1002 | 参数名 | 类型 | 必填 | 说明 | 1003 | -------- | -------- | -------- | -------- | 1004 | callback | AsyncCallback<number> | 是 | 用来接收GNSS芯片缓存位置个数的回调。 | 1005 1006**示例** 1007 1008 ```ts 1009 import geolocation from '@ohos.geolocation'; 1010 geolocation.getCachedGnssLocationsSize((err, size) => { 1011 if (err) { 1012 console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err)); 1013 } 1014 if (size) { 1015 console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size)); 1016 } 1017 }); 1018 ``` 1019 1020 1021## geolocation.getCachedGnssLocationsSize<sup>(deprecated)</sup> 1022 1023getCachedGnssLocationsSize(): Promise<number>; 1024 1025获取GNSS芯片缓存位置的个数。 1026 1027> **说明:**<br/> 1028> 从API version 8开始支持。 1029> 从API version 9开始废弃,建议使用[geoLocationManager.getCachedGnssLocationsSize](js-apis-geoLocationManager.md#geolocationmanagergetcachedgnsslocationssize-1)替代。 1030 1031**需要权限**:ohos.permission.LOCATION 1032 1033**系统能力**:SystemCapability.Location.Location.Gnss 1034 1035**返回值**: 1036 1037 | 参数名 | 类型 | 必填 | 说明 | 1038 | -------- | -------- | -------- | -------- | 1039 | Promise<number> | number|NA|返回GNSS缓存位置的个数。 | 1040 1041**示例** 1042 1043 ```ts 1044 import geolocation from '@ohos.geolocation'; 1045 geolocation.getCachedGnssLocationsSize().then((result) => { 1046 console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result)); 1047 }); 1048 ``` 1049 1050 1051## geolocation.flushCachedGnssLocations<sup>(deprecated)</sup> 1052 1053flushCachedGnssLocations(callback: AsyncCallback<boolean>): void; 1054 1055读取并清空GNSS芯片所有缓存位置。 1056 1057> **说明:**<br/> 1058> 从API version 8开始支持。 1059> 从API version 9开始废弃,建议使用[geoLocationManager.flushCachedGnssLocations](js-apis-geoLocationManager.md#geolocationmanagerflushcachedgnsslocations)替代。 1060 1061**需要权限**:ohos.permission.LOCATION 1062 1063**系统能力**:SystemCapability.Location.Location.Gnss 1064 1065**参数**: 1066 1067 | 参数名 | 类型 | 必填 | 说明 | 1068 | -------- | -------- | -------- | -------- | 1069 | callback | AsyncCallback<boolean> | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 | 1070 1071**示例** 1072 1073 ```ts 1074 import geolocation from '@ohos.geolocation'; 1075 geolocation.flushCachedGnssLocations((err, result) => { 1076 if (err) { 1077 console.log('flushCachedGnssLocations: err=' + JSON.stringify(err)); 1078 } 1079 if (result) { 1080 console.log('flushCachedGnssLocations: result=' + JSON.stringify(result)); 1081 } 1082 }); 1083 ``` 1084 1085 1086## geolocation.flushCachedGnssLocations<sup>(deprecated)</sup> 1087 1088flushCachedGnssLocations(): Promise<boolean>; 1089 1090读取并清空GNSS芯片所有缓存位置。 1091 1092> **说明:**<br/> 1093> 从API version 8开始支持。 1094> 从API version 9开始废弃,建议使用[geoLocationManager.flushCachedGnssLocations](js-apis-geoLocationManager.md#geolocationmanagerflushcachedgnsslocations-1)替代。 1095 1096**需要权限**:ohos.permission.LOCATION 1097 1098**系统能力**:SystemCapability.Location.Location.Gnss 1099 1100**返回值**: 1101 1102 | 参数名 | 类型 | 必填 | 说明 | 1103 | -------- | -------- | -------- | -------- | 1104 | Promise<boolean> |boolean|NA| 清空所有GNSS缓存位置是否成功。 | 1105 1106**示例** 1107 1108 ```ts 1109 import geolocation from '@ohos.geolocation'; 1110 geolocation.flushCachedGnssLocations().then((result) => { 1111 console.log('promise, flushCachedGnssLocations: ' + JSON.stringify(result)); 1112 }); 1113 ``` 1114 1115 1116## geolocation.sendCommand<sup>(deprecated)</sup> 1117 1118sendCommand(command: LocationCommand, callback: AsyncCallback<boolean>): void; 1119 1120给位置服务子系统的各个部件发送扩展命令。 1121 1122> **说明:**<br/> 1123> 从API version 8开始支持。 1124> 从API version 9开始废弃,建议使用[geoLocationManager.sendCommand](js-apis-geoLocationManager.md#geolocationmanagersendcommand)替代。 1125 1126**需要权限**:ohos.permission.LOCATION 1127 1128**系统能力**:SystemCapability.Location.Location.Core 1129 1130**参数**: 1131 1132 | 参数名 | 类型 | 必填 | 说明 | 1133 | -------- | -------- | -------- | -------- | 1134 | command | [LocationCommand](#locationcommanddeprecated) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1135 | callback | AsyncCallback<boolean> | 是 | 用来接收命令发送的结果。 | 1136 1137**示例** 1138 1139 ```ts 1140 import geolocation from '@ohos.geolocation'; 1141 let requestInfo = {'scenario': 0x301, 'command': "command_1"}; 1142 geolocation.sendCommand(requestInfo, (err, result) => { 1143 if (err) { 1144 console.log('sendCommand: err=' + JSON.stringify(err)); 1145 } 1146 if (result) { 1147 console.log('sendCommand: result=' + JSON.stringify(result)); 1148 } 1149 }); 1150 ``` 1151 1152 1153## geolocation.sendCommand<sup>(deprecated)</sup> 1154 1155sendCommand(command: LocationCommand): Promise<boolean>; 1156 1157给位置服务子系统的各个部件发送扩展命令。 1158 1159> **说明:**<br/> 1160> 从API version 8开始支持。 1161> 从API version 9开始废弃,建议使用[geoLocationManager.sendCommand](js-apis-geoLocationManager.md#geolocationmanagersendcommand)替代。 1162 1163**需要权限**:ohos.permission.LOCATION 1164 1165**系统能力**:SystemCapability.Location.Location.Core 1166 1167**参数**: 1168 1169 | 参数名 | 类型 | 必填 | 说明 | 1170 | -------- | -------- | -------- | -------- | 1171 | command | [LocationCommand](#locationcommanddeprecated) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1172 1173**返回值**: 1174 1175 | 参数名 | 类型 | 必填 | 说明 | 1176 | -------- | -------- | -------- | -------- | 1177 | Promise<boolean> |boolean|NA| 表示命令发送成功或失败。 | 1178 1179**示例** 1180 1181 ```ts 1182 import geolocation from '@ohos.geolocation'; 1183 let requestInfo = {'scenario': 0x301, 'command': "command_1"}; 1184 geolocation.sendCommand(requestInfo).then((result) => { 1185 console.log('promise, sendCommand: ' + JSON.stringify(result)); 1186 }); 1187 ``` 1188 1189 1190## ReverseGeoCodeRequest<sup>(deprecated)</sup> 1191 1192逆地理编码请求接口。 1193 1194> **说明:**<br/> 1195> 从API version 9开始废弃,建议使用[geoLocationManager.ReverseGeoCodeRequest](js-apis-geoLocationManager.md#reversegeocoderequest)替代。 1196 1197**需要权限**:ohos.permission.LOCATION 1198 1199**系统能力**:SystemCapability.Location.Location.Geocoder 1200 1201| 名称 | 类型 | 可读 | 可写 | 说明 | 1202| -------- | -------- | -------- | -------- | -------- | 1203| locale | string | 是 | 是 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1204| latitude | number | 是 | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1205| longitude | number | 是 | 是 | 表示经度信息,正值表示东经,负值表示西经。取值范围为-180到180。 | 1206| maxItems | number | 是 | 是 | 指定返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 | 1207 1208 1209## GeoCodeRequest<sup>(deprecated)</sup> 1210 1211地理编码请求接口。 1212 1213> **说明:**<br/> 1214> 从API version 9开始废弃,建议使用[geoLocationManager.GeoCodeRequest](js-apis-geoLocationManager.md#geocoderequest)替代。 1215 1216**需要权限**:ohos.permission.LOCATION 1217 1218**系统能力**:SystemCapability.Location.Location.Geocoder 1219 1220| 名称 | 类型 | 可读|可写 | 说明 | 1221| -------- | -------- | -------- | -------- | -------- | 1222| locale | string | 是 | 是 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1223| description | string | 是 | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 | 1224| maxItems | number | 是 | 是 | 表示返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 | 1225| minLatitude | number | 是 | 是 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。取值范围为-90到90。 | 1226| minLongitude | number | 是 | 是 | 表示最小经度信息。取值范围为-180到180。 | 1227| maxLatitude | number | 是 | 是 | 表示最大纬度信息。取值范围为-90到90。 | 1228| maxLongitude | number | 是 | 是 | 表示最大经度信息。取值范围为-180到180。 | 1229 1230 1231## GeoAddress<sup>(deprecated)</sup> 1232 1233地理编码类型。 1234 1235> **说明:**<br/> 1236> 从API version 9开始废弃,建议使用[geoLocationManager.GeoAddress](js-apis-geoLocationManager.md#geoaddress)替代。 1237 1238**需要权限**:ohos.permission.LOCATION 1239 1240**系统能力**:SystemCapability.Location.Location.Geocoder 1241 1242| 名称 | 类型 | 可读|可写 | 说明 | 1243| -------- | -------- | -------- | -------- | -------- | 1244| latitude<sup>7+</sup> | number | 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1245| longitude<sup>7+</sup> | number | 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 | 1246| locale<sup>7+</sup> | string | 是 | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 | 1247| placeName<sup>7+</sup> | string | 是 | 否 | 表示地区信息。 | 1248| countryCode<sup>7+</sup> | string | 是 | 否 | 表示国家码信息。 | 1249| countryName<sup>7+</sup> | string | 是 | 否 | 表示国家信息。 | 1250| administrativeArea<sup>7+</sup> | string | 是 | 否 | 表示省份区域信息。 | 1251| subAdministrativeArea<sup>7+</sup> | string | 是 | 否 | 表示表示子区域信息。 | 1252| locality<sup>7+</sup> | string | 是 | 否 | 表示城市信息。 | 1253| subLocality<sup>7+</sup> | string | 是 | 否 | 表示子城市信息。 | 1254| roadName<sup>7+</sup> | string | 是 | 否 | 表示路名信息。 | 1255| subRoadName<sup>7+</sup> | string | 是 | 否 | 表示子路名信息。 | 1256| premises<sup>7+</sup> | string | 是 | 否 | 表示门牌号信息。 | 1257| postalCode<sup>7+</sup> | string | 是 | 否 | 表示邮政编码信息。 | 1258| phoneNumber<sup>7+</sup> | string | 是 | 否| 表示联系方式信息。 | 1259| addressUrl<sup>7+</sup> | string | 是 | 否 | 表示位置信息附件的网址信息。 | 1260| descriptions<sup>7+</sup> | Array<string> | 是 | 否 | 表示附加的描述信息。 | 1261| descriptionsSize<sup>7+</sup> | number | 是 | 否 | 表示附加的描述信息数量。取值范围为大于等于0,推荐该值小于10。 | 1262 1263 1264## LocationRequest<sup>(deprecated)</sup> 1265 1266位置信息请求类型。 1267 1268> **说明:**<br/> 1269> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequest](js-apis-geoLocationManager.md#locationrequest)替代。 1270 1271**需要权限**:ohos.permission.LOCATION 1272 1273**系统能力**:SystemCapability.Location.Location.Core 1274 1275| 名称 | 类型 | 可读|可写 | 说明 | 1276| -------- | -------- | -------- | -------- | -------- | 1277| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示优先级信息。取值范围见[LocationRequestPriority](#locationrequestprioritydeprecated)的定义。 | 1278| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示场景信息。取值范围见[LocationRequestScenario](#locationrequestscenariodeprecated)的定义。 | 1279| timeInterval | number | 是 | 是 | 表示上报位置信息的时间间隔,单位是秒。取值范围为大于0。 | 1280| distanceInterval | number | 是 | 是 | 表示上报位置信息的距离间隔。单位是米,取值范围为大于0。 | 1281| maxAccuracy | number | 是 | 是 | 表示精度信息。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。取值范围为大于0。 | 1282 1283 1284## CurrentLocationRequest<sup>(deprecated)</sup> 1285 1286当前位置信息请求类型。 1287 1288> **说明:**<br/> 1289> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#currentlocationrequest)替代。 1290 1291**需要权限**:ohos.permission.LOCATION 1292 1293**系统能力**:SystemCapability.Location.Location.Core 1294 1295| 名称 | 类型 | 可读|可写 | 说明 | 1296| -------- | -------- | -------- | -------- | -------- | 1297| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示优先级信息。取值范围见[LocationRequestPriority](#locationrequestprioritydeprecated)的定义。 | 1298| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示场景信息。取值范围见[LocationRequestScenario](#locationrequestscenariodeprecated)的定义。 | 1299| maxAccuracy | number | 是 | 是| 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。取值范围为大于0。 | 1300| timeoutMs | number | 是 | 是 | 表示超时时间,单位是毫秒,最小为1000毫秒。取值范围为大于等于1000。 | 1301 1302 1303## SatelliteStatusInfo<sup>(deprecated)</sup> 1304 1305卫星状态信息。 1306 1307> **说明:**<br/> 1308> 从API version 8开始支持。 1309> 从API version 9开始废弃,建议使用[geoLocationManager.SatelliteStatusInfo](js-apis-geoLocationManager.md#satellitestatusinfo)替代。 1310 1311**需要权限**:ohos.permission.LOCATION 1312 1313**系统能力**:SystemCapability.Location.Location.Gnss 1314 1315| 名称 | 类型 | 可读|可写 | 说明 | 1316| -------- | -------- | -------- | -------- | -------- | 1317| satellitesNumber | number | 是 | 否 | 表示卫星个数。取值范围为大于等于0。 | 1318| satelliteIds | Array<number> | 是 | 否 | 表示每个卫星的ID,数组类型。取值范围为大于等于0。 | 1319| carrierToNoiseDensitys | Array<number> | 是 | 否 | 表示载波噪声功率谱密度比,即cn0。取值范围为大于0。 | 1320| altitudes | Array<number> | 是 | 否 | 表示卫星高度角信息。单位是“度”,取值范围为-90到90。 | 1321| azimuths | Array<number> | 是 | 否 | 表示方位角。单位是“度”,取值范围为0到360。 | 1322| carrierFrequencies | Array<number> | 是 | 否 | 表示载波频率。单位是Hz,取值范围为大于等于0。 | 1323 1324 1325## CachedGnssLocationsRequest<sup>(deprecated)</sup> 1326 1327请求订阅GNSS缓存位置上报功能接口的配置参数。 1328 1329> **说明:**<br/> 1330> 从API version 8开始支持。 1331> 从API version 9开始废弃,建议使用[geoLocationManager.CachedGnssLocationsRequest](js-apis-geoLocationManager.md#cachedgnsslocationsrequest)替代。 1332 1333**需要权限**:ohos.permission.LOCATION 1334 1335**系统能力**:SystemCapability.Location.Location.Gnss 1336 1337| 名称 | 类型 | 可读|可写 | 说明 | 1338| -------- | -------- | -------- | -------- | -------- | 1339| reportingPeriodSec | number | 是 | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。取值范围为大于0。 | 1340| wakeUpCacheQueueFull | boolean | 是 | 是 | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 | 1341 1342 1343## Geofence<sup>(deprecated)</sup> 1344 1345GNSS围栏的配置参数。目前只支持圆形围栏。 1346 1347> **说明:**<br/> 1348> 从API version 8开始支持。 1349> 从API version 9开始废弃,建议使用[geoLocationManager.Geofence](js-apis-geoLocationManager.md#geofence)替代。 1350 1351**需要权限**:ohos.permission.LOCATION 1352 1353**系统能力**:SystemCapability.Location.Location.Geofence 1354 1355| 名称 | 类型 | 可读|可写 | 说明 | 1356| -------- | -------- | -------- | -------- | -------- | 1357| latitude | number | 是 | 是 |表示纬度。取值范围为-90到90。 | 1358| longitude | number | 是 |是 | 表示经度。取值范围为-180到180。 | 1359| radius | number | 是 |是 | 表示圆形围栏的半径。单位是米,取值范围为大于0。 | 1360| expiration | number | 是 |是 | 围栏存活的时间,单位是毫秒。取值范围为大于0。 | 1361 1362 1363## GeofenceRequest<sup>(deprecated)</sup> 1364 1365请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。 1366 1367> **说明:**<br/> 1368> 从API version 8开始支持。 1369> 从API version 9开始废弃,建议使用[geoLocationManager.GeofenceRequest](js-apis-geoLocationManager.md#geofencerequest)替代。 1370 1371**需要权限**:ohos.permission.LOCATION 1372 1373**系统能力**:SystemCapability.Location.Location.Geofence 1374 1375| 名称 | 类型 | 可读|可写 | 说明 | 1376| -------- | -------- | -------- | -------- | -------- | 1377| priority | [LocationRequestPriority](#locationrequestprioritydeprecated) | 是 | 是 | 表示位置信息优先级。 | 1378| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示定位场景。 | 1379| geofence | [Geofence](#geofencedeprecated)| 是 | 是 | 表示围栏信息。 | 1380 1381 1382## LocationCommand<sup>(deprecated)</sup> 1383 1384扩展命令结构体。 1385 1386> **说明:**<br/> 1387> 从API version 8开始支持。 1388> 从API version 9开始废弃,建议使用[geoLocationManager.LocationCommand](js-apis-geoLocationManager.md#locationcommand)替代。 1389 1390**需要权限**:ohos.permission.LOCATION 1391 1392**系统能力**:SystemCapability.Location.Location.Core 1393 1394| 名称 | 类型 | 可读|可写 | 说明 | 1395| -------- | -------- | -------- | -------- | -------- | 1396| scenario | [LocationRequestScenario](#locationrequestscenariodeprecated) | 是 | 是 | 表示定位场景。 | 1397| command | string | 是 | 是 | 扩展命令字符串。 | 1398 1399 1400## Location<sup>(deprecated)</sup> 1401 1402位置信息类型。 1403 1404> **说明:**<br/> 1405> 从API version 9开始废弃,建议使用[geoLocationManager.Location](js-apis-geoLocationManager.md#location)替代。 1406 1407**需要权限**:ohos.permission.LOCATION 1408 1409**系统能力**:SystemCapability.Location.Location.Core 1410 1411| 名称 | 类型 | 可读|可写 | 说明 | 1412| -------- | -------- | -------- | -------- | -------- | 1413| latitude<sup>7+</sup> | number | 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 | 1414| longitude<sup>7+</sup> | number | 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 | 1415| altitude<sup>7+</sup> | number | 是 | 否 | 表示高度信息,单位米。 | 1416| accuracy<sup>7+</sup> | number | 是 | 否 | 表示精度信息,单位米。 | 1417| speed<sup>7+</sup> | number | 是 | 否 | 表示速度信息,单位米每秒。 | 1418| timeStamp<sup>7+</sup> | number | 是 | 否 | 表示位置时间戳,UTC格式。 | 1419| direction<sup>7+</sup> | number | 是 | 否 | 表示航向信息。单位是“度”,取值范围为0到360。 | 1420| timeSinceBoot<sup>7+</sup> | number | 是 | 否 | 表示位置时间戳,开机时间格式。 | 1421| additions<sup>7+</sup> | Array<string> | 是 | 否 | 附加信息。 | 1422| additionSize<sup>7+</sup> | number | 是 | 否 | 附加信息数量。取值范围为大于等于0。 | 1423 1424 1425## LocationPrivacyType<sup>(deprecated)</sup> 1426 1427定位服务隐私协议类型。 1428 1429> **说明:**<br/> 1430> 从API version 8开始支持。 1431> 从API version 9开始废弃,建议使用[geoLocationManager.LocationPrivacyType](js-apis-geoLocationManager.md#locationprivacytype)替代。 1432 1433**需要权限**:ohos.permission.LOCATION 1434 1435**系统能力**:SystemCapability.Location.Location.Core 1436 1437| 名称 | 值 | 说明 | 1438| -------- | -------- | -------- | 1439| OTHERS | 0 | 其他场景。预留字段。 | 1440| STARTUP | 1 | 开机向导场景下的隐私协议。在开机时弹出协议,提醒用户阅读并选择是否授权。 | 1441| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 | 1442 1443 1444## LocationRequestPriority<sup>(deprecated)</sup> 1445 1446位置请求中位置信息优先级设置。 1447 1448> **说明:**<br/> 1449> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequestPriority](js-apis-geoLocationManager.md#locationrequestpriority)替代。 1450 1451**需要权限**:ohos.permission.LOCATION 1452 1453**系统能力**:SystemCapability.Location.Location.Core 1454 1455| 名称 | 值 | 说明 | 1456| -------- | -------- | -------- | 1457| UNSET | 0x200 | 表示未设置优先级,表示[LocationRequestPriority](#locationrequestprioritydeprecated)无效。 | 1458| ACCURACY | 0x201 | 表示精度优先。<br/>定位精度优先策略主要以GNSS定位技术为主,在开阔场景下可以提供米级的定位精度,具体性能指标依赖用户设备的定位硬件能力,但在室内等强遮蔽定位场景下,无法提供准确的位置服务。 | 1459| LOW_POWER | 0x202 | 表示低功耗优先。<br/>低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。 | 1460| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到一个位置,可以将优先级设置为该字段。<br/>快速定位优先策略会同时使用GNSS定位、基站定位和WLAN、蓝牙定位技术,以便室内和户外场景下,通过此策略都可以获得位置结果,当各种定位技术都有提供位置结果时,系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用,对设备的硬件资源消耗较大,功耗也较大。 | 1461 1462 1463## LocationRequestScenario<sup>(deprecated)</sup> 1464 1465 位置请求中定位场景设置。 1466 1467> **说明:**<br/> 1468> 从API version 9开始废弃,建议使用[geoLocationManager.LocationRequestScenario](js-apis-geoLocationManager.md#locationrequestscenario)替代。 1469 1470**需要权限**:ohos.permission.LOCATION 1471 1472**系统能力**:SystemCapability.Location.Location.Core 1473 1474| 名称 | 值 | 说明 | 1475| -------- | -------- | -------- | 1476| UNSET | 0x300 | 表示未设置场景信息。<br/>表示[LocationRequestScenario](#locationrequestscenariodeprecated)字段无效。 | 1477| NAVIGATION | 0x301 | 表示导航场景。<br/>适用于在户外定位设备实时位置的场景,如车载、步行导航。<br/>在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务<br/>此场景默认以最小1秒间隔上报定位结果。 | 1478| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。<br/>适用于记录用户位置轨迹的场景,如运动类应用记录轨迹功能。主要使用GNSS定位技术提供定位服务。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1479| CAR_HAILING | 0x303 | 表示打车场景。<br/>适用于用户出行打车时定位当前位置的场景,如网约车类应用。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1480| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。<br/>适用于不需要定位用户精确位置的使用场景,如新闻资讯、网购、点餐类应用,做推荐、推送时定位用户大致位置即可。<br/>此场景默认以最小1秒间隔上报定位结果。 | 1481| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 | 1482 1483 1484## GeoLocationErrorCode<sup>(deprecated)</sup> 1485 1486位置服务中的错误码信息。 1487 1488> **说明:**<br/> 1489> 从API version 9开始废弃,建议使用[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)替代。 1490 1491**需要权限**:ohos.permission.LOCATION 1492 1493**系统能力**:SystemCapability.Location.Location.Core 1494 1495| 名称 | 值 | 说明 | 1496| -------- | -------- | -------- | 1497| INPUT_PARAMS_ERROR<sup>7+</sup> | 101 | 表示输入参数错误。 | 1498| REVERSE_GEOCODE_ERROR<sup>7+</sup> | 102 | 表示逆地理编码接口调用失败。 | 1499| GEOCODE_ERROR<sup>7+</sup> | 103 | 表示地理编码接口调用失败。 | 1500| LOCATOR_ERROR<sup>7+</sup> | 104 | 表示定位失败。 | 1501| LOCATION_SWITCH_ERROR<sup>7+</sup> | 105 | 表示定位开关。 | 1502| LAST_KNOWN_LOCATION_ERROR<sup>7+</sup> | 106 | 表示获取上次位置失败。 | 1503| LOCATION_REQUEST_TIMEOUT_ERROR<sup>7+</sup> | 107 | 表示单次定位,没有在指定时间内返回位置。 |