js-apis-geolocation.md 42.2 KB
Newer Older
Z
zengyawen 已提交
1
# 位置服务
Z
zengyawen 已提交
2 3 4 5 6 7 8 9


> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

Z
zengyawen 已提交
10

Z
zengyawen 已提交
11 12 13 14 15 16 17 18 19 20
```
import geolocation from '@ohos.geolocation';
```

## geolocation.on('locationChange')

on(type: 'locationChange', request: LocationRequest, callback: Callback<Location>) : void

开启位置变化订阅,并发起定位请求。

L
liu-binjun 已提交
21 22 23 24
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
25
- 参数:
Z
zengyawen 已提交
26
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
27
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
28 29 30
  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
  | request | LocationRequest | 是 | 设置位置请求参数。 |
  | callback | Callback<[Location](#location)> | 是 | 接收位置变化状态变化监听。 |
Z
zengyawen 已提交
31

L
liu-binjun 已提交
32

Z
zengyawen 已提交
33
- 示例:
Z
zengyawen 已提交
34
  
Z
zengyawen 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
  ```
  var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
  var locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
  };
  geolocation.on('locationChange', requestInfo, locationChange);
  ```


## geolocation.off('locationChange')

off(type: 'locationChange', callback?: Callback<Location>) : void

关闭位置变化订阅,并删除对应的定位请求。

L
liu-binjun 已提交
50 51 52 53
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
54
- 参数:
Z
zengyawen 已提交
55
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
56
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
57 58
  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
  | callback | Callback<[Location](#location)> | 否 | 接收位置变化状态变化监听。 |
Z
zengyawen 已提交
59

L
liu-binjun 已提交
60

Z
zengyawen 已提交
61
- 示例:
Z
zengyawen 已提交
62
  
Z
zengyawen 已提交
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
  ```
  var requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
  var locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
  };
  geolocation.on('locationChange', requestInfo, locationChange);
  geolocation.off('locationChange', locationChange);
  ```


## geolocation.on('locationServiceState')

on(type: 'locationServiceState', callback: Callback<boolean>) : void

订阅位置服务状态变化。

L
liu-binjun 已提交
79 80 81 82
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
83
- 参数:
Z
zengyawen 已提交
84
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
85
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
86 87
  | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 |
  | callback | Callback<boolean> | 是 | 接收位置服务状态变化监听。 |
Z
zengyawen 已提交
88

L
liu-binjun 已提交
89

Z
zengyawen 已提交
90
- 示例:
Z
zengyawen 已提交
91
  
Z
zengyawen 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105
  ```
  var locationServiceState = (state) => {
      console.log('locationServiceState: ' + state);
  }
  geolocation.on('locationServiceState', locationServiceState);
  ```


## geolocation.off('locationServiceState')

off(type: 'locationServiceState', callback?: Callback<boolean>) : void;

取消订阅位置服务状态变化。

L
liu-binjun 已提交
106 107 108 109
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
110
- 参数:
Z
zengyawen 已提交
111
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
112
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
113 114
  | type | string | 是 | 设置事件类型。type为“locationServiceState”,表示位置服务状态。 |
  | callback | Callback<boolean> | 否 | 接收位置服务状态变化监听。 |
Z
zengyawen 已提交
115

L
liu-binjun 已提交
116

Z
zengyawen 已提交
117
- 示例:
Z
zengyawen 已提交
118
  
Z
zengyawen 已提交
119 120 121 122 123 124 125 126 127
  ```
  var locationServiceState = (state) => {
      console.log('locationServiceState: state: ' + state);
  }
  geolocation.on('locationServiceState', locationServiceState);
  geolocation.off('locationServiceState', locationServiceState);
  ```


L
liu-binjun 已提交
128
## geolocation.on('cachedGnssLocationsReporting')<sup>8+</sup>
Z
zengyawen 已提交
129 130 131 132 133

on(type: 'cachedGnssLocationsReporting', request: CachedGnssLocationsRequest, callback: Callback&lt;Array&lt;Location&gt;&gt;) : void;

订阅缓存GNSS定位结果上报事件。

L
liu-binjun 已提交
134 135 136 137
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
138
- 参数:
Z
zengyawen 已提交
139
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
140
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
141 142 143
  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 |
  | request | CachedGnssLocationsRequest | 是 | GNSS缓存功能配置参数 |
  | callback | Callback&lt;boolean&gt; | 是 | 接收GNSS缓存位置上报。 |
Z
zengyawen 已提交
144

L
liu-binjun 已提交
145

Z
zengyawen 已提交
146
- 示例:
Z
zengyawen 已提交
147
  
Z
zengyawen 已提交
148 149 150 151 152 153 154 155 156
  ```
  var cachedLocationsCb = (locations) => {
      console.log('cachedGnssLocationsReporting: locations: ' + locations);
  }
  var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
  geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
  ```


L
liu-binjun 已提交
157
## geolocation.off('cachedGnssLocationsReporting')<sup>8+</sup>
Z
zengyawen 已提交
158 159 160 161 162

off(type: 'cachedGnssLocationsReporting', callback?: Callback&lt;Array&lt;Location&gt;&gt;) : void;

取消订阅缓存GNSS定位结果上报事件。

L
liu-binjun 已提交
163 164 165 166
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
167
- 参数:
Z
zengyawen 已提交
168
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
169
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
170 171
  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsReporting”,表示GNSS缓存定位结果上报。 |
  | callback | Callback&lt;boolean&gt; | 否 | 接收GNSS缓存位置上报。 |
Z
zengyawen 已提交
172

L
liu-binjun 已提交
173

Z
zengyawen 已提交
174
- 示例:
Z
zengyawen 已提交
175
  
Z
zengyawen 已提交
176 177 178 179 180 181 182 183 184 185
  ```
  var cachedLocationsCb = (locations) => {
      console.log('cachedGnssLocationsReporting: locations: ' + locations);
  }
  var requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
  geolocation.on('cachedGnssLocationsReporting', requestInfo, cachedLocationsCb);
  geolocation.off('cachedGnssLocationsReporting');
  ```


L
liu-binjun 已提交
186
## geolocation.on('gnssStatusChange')<sup>8+</sup>
Z
zengyawen 已提交
187 188 189 190 191

on(type: 'gnssStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;) : void;

订阅GNSS卫星状态信息上报事件。

L
liu-binjun 已提交
192 193 194 195
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
196
- 参数:
Z
zengyawen 已提交
197
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
198
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
199 200
  | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 |
  | callback | Callback&lt;SatelliteStatusInfo&gt; | 是 | 接收GNSS卫星状态信息上报。 |
Z
zengyawen 已提交
201

L
liu-binjun 已提交
202

Z
zengyawen 已提交
203
- 示例:
Z
zengyawen 已提交
204
  
Z
zengyawen 已提交
205 206 207 208 209 210 211 212
  ```
  var gnssStatusCb = (satelliteStatusInfo) => {
      console.log('gnssStatusChange: ' + satelliteStatusInfo);
  }
  geolocation.on('gnssStatusChange', gnssStatusCb);
  ```


L
liu-binjun 已提交
213
## geolocation.off('gnssStatusChange')<sup>8+</sup>
Z
zengyawen 已提交
214 215 216 217 218

off(type: 'gnssStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;) : void;

取消订阅GNSS卫星状态信息上报事件。

L
liu-binjun 已提交
219 220 221 222
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
223
- 参数:
Z
zengyawen 已提交
224
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
225
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
226 227
  | type | string | 是 | 设置事件类型。type为“gnssStatusChange”,表示订阅GNSS卫星状态信息上报。 |
  | callback | Callback&lt;SatelliteStatusInfo&gt; | 否 | 接收GNSS卫星状态信息上报。 |
Z
zengyawen 已提交
228 229

- 示例:
Z
zengyawen 已提交
230
  
Z
zengyawen 已提交
231 232 233 234 235 236 237 238 239
  ```
  var gnssStatusCb = (satelliteStatusInfo) => {
      console.log('gnssStatusChange: ' + satelliteStatusInfo);
  }
  geolocation.on('gnssStatusChange', gnssStatusCb);
  geolocation.off('gnssStatusChange', gnssStatusCb);
  ```


L
liu-binjun 已提交
240
## geolocation.on('nmeaMessageChange')<sup>8+</sup>
Z
zengyawen 已提交
241 242 243 244 245

on(type: 'nmeaMessageChange', callback: Callback&lt;string&gt;) : void;

订阅GNSS NMEA信息上报事件。

L
liu-binjun 已提交
246 247 248 249
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
250
- 参数:
Z
zengyawen 已提交
251
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
252
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
253 254
  | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS&nbsp;NMEA信息上报。 |
  | callback | Callback&lt;string&gt; | 是 | 接收GNSS&nbsp;NMEA信息上报。 |
Z
zengyawen 已提交
255

L
liu-binjun 已提交
256

Z
zengyawen 已提交
257
- 示例:
Z
zengyawen 已提交
258
  
Z
zengyawen 已提交
259 260 261 262 263 264 265 266
  ```
  var nmeaCb = (str) => {
      console.log('nmeaMessageChange: ' + str);
  }
  geolocation.on('nmeaMessageChange', nmeaCb );
  ```


L
liu-binjun 已提交
267
## geolocation.off('nmeaMessageChange')<sup>8+</sup>
Z
zengyawen 已提交
268 269 270 271 272

off(type: 'nmeaMessageChange', callback?: Callback&lt;string&gt;) : void;

取消订阅GNSS NMEA信息上报事件。

L
liu-binjun 已提交
273 274 275 276
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss

Z
zengyawen 已提交
277
- 参数:
Z
zengyawen 已提交
278
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
279
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
280 281
  | type | string | 是 | 设置事件类型。type为“nmeaMessageChange”,表示订阅GNSS&nbsp;NMEA信息上报。 |
  | callback | Callback&lt;string&gt; | 否 | 接收GNSS&nbsp;NMEA信息上报。 |
Z
zengyawen 已提交
282

L
liu-binjun 已提交
283

Z
zengyawen 已提交
284
- 示例:
Z
zengyawen 已提交
285
  
Z
zengyawen 已提交
286 287 288 289 290 291 292 293 294
  ```
  var nmeaCb = (str) => {
      console.log('nmeaMessageChange: ' + str);
  }
  geolocation.on('nmeaMessageChange', nmeaCb);
  geolocation.off('nmeaMessageChange', nmeaCb);
  ```


L
liu-binjun 已提交
295
## geolocation.on('fenceStatusChange')<sup>8+</sup>
Z
zengyawen 已提交
296 297 298 299 300

on(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void;

添加一个围栏,并订阅地理围栏事件。

L
liu-binjun 已提交
301 302 303 304
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geofence

Z
zengyawen 已提交
305
- 参数:
Z
zengyawen 已提交
306
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
307
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
308 309 310
  | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 |
  | request | GeofenceRequest | 是 | 围栏的配置参数。 |
  | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
Z
zengyawen 已提交
311

L
liu-binjun 已提交
312

Z
zengyawen 已提交
313
- 示例:
Z
zengyawen 已提交
314
  
Z
zengyawen 已提交
315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361
  ```
  import WantAgent from '@ohos.wantAgent';
  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
  //wantAgent对象
  var wantAgent;
  //getWantAgent回调
  function getWantAgentCallback(err, data) {
  	console.info("==========================>getWantAgentCallback=======================>");
      if (err.code == 0) {
  	wantAgent = data;
      } else {
          console.info('----getWantAgent failed!----');
      }
  }
  //WantAgentInfo对象
  var wantAgentInfo = {
      wants: [
          {
              deviceId: "deviceId",
              bundleName: "com.neu.setResultOnAbilityResultTest1",
              abilityName: "com.example.test.MainAbility",
              action: "action1",
              entities: ["entity1"],
              type: "MIMETYPE",
              uri: "key={true,true,false}",
              parameters:
              {
                  mykey0: 2222,
                  mykey1: [1, 2, 3],
                  mykey2: "[1, 2, 3]",
                  mykey3: "ssssssssssssssssssssssssss",
                  mykey4: [false, true, false],
                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
                  mykey6: true,
              }
          }
      ],
      operationType: OperationType.START_ABILITIES,
      requestCode: 0,
      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
  }
  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
  ```


L
liu-binjun 已提交
362
## geolocation.off('fenceStatusChange')<sup>8+</sup>
Z
zengyawen 已提交
363 364 365 366 367

off(type: 'fenceStatusChange', request: GeofenceRequest, want: WantAgent) : void;

删除一个围栏,并取消订阅该围栏事件。

L
liu-binjun 已提交
368 369 370 371
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geofence

Z
zengyawen 已提交
372
- 参数:
Z
zengyawen 已提交
373
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
374
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
375 376 377
  | type | string | 是 | 设置事件类型。type为“fenceStatusChange”,表示订阅围栏事件上报。 |
  | request | GeofenceRequest | 是 | 围栏的配置参数。 |
  | want | WantAgent | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
Z
zengyawen 已提交
378 379

- 示例:
Z
zengyawen 已提交
380
  
Z
zengyawen 已提交
381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435
  ```
  import WantAgent from '@ohos.wantAgent';
  import { OperationType, WantAgentFlags } from '@ohos.wantagent';
  //wantAgent对象
  var wantAgent;
  //getWantAgent回调
  function getWantAgentCallback(err, data) {
  	console.info("==========================>getWantAgentCallback=======================>");
      if (err.code == 0) {
  	wantAgent = data;
      } else {
          console.info('----getWantAgent failed!----');
      }
  }
  //WantAgentInfo对象
  var wantAgentInfo = {
      wants: [
          {
              deviceId: "deviceId",
              bundleName: "com.neu.setResultOnAbilityResultTest1",
              abilityName: "com.example.test.MainAbility",
              action: "action1",
              entities: ["entity1"],
              type: "MIMETYPE",
              uri: "key={true,true,false}",
              parameters:
              {
                  mykey0: 2222,
                  mykey1: [1, 2, 3],
                  mykey2: "[1, 2, 3]",
                  mykey3: "ssssssssssssssssssssssssss",
                  mykey4: [false, true, false],
                  mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"],
                  mykey6: true,
              }
          }
      ],
      operationType: OperationType.START_ABILITIES,
      requestCode: 0,
      wantAgentFlags:[WantAgentFlags.UPDATE_PRESENT_FLAG]
  }
  WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback)
  var requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
  geolocation.on('fenceStatusChange', requestInfo, wantAgent);
  geolocation.off('fenceStatusChange', requestInfo, wantAgent);
  ```


## geolocation.getCurrentLocation

getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;Location&gt;) : void


获取当前位置,使用callback回调异步返回结果。

L
liu-binjun 已提交
436 437 438
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core
Z
zengyawen 已提交
439 440

- 参数:
Z
zengyawen 已提交
441
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
442
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
443 444
  | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
Z
zengyawen 已提交
445 446

- 示例:
Z
zengyawen 已提交
447
  
Z
zengyawen 已提交
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464
  ```
  var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
  var locationChange = (err, location) => {
      console.log('locationChanger: ' + err + 'data: ' + location);
  };
  geolocation.getCurrentLocation(requestInfo, locationChange);
  geolocation.getCurrentLocation(locationChange);
  ```


## geolocation.getCurrentLocation

getCurrentLocation(request?: CurrentLocationRequest) : Promise&lt;Location&gt;


获取当前位置,使用Promise方式异步返回结果。

L
liu-binjun 已提交
465 466 467
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core
Z
zengyawen 已提交
468 469

- 参数:
Z
zengyawen 已提交
470
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
471
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
472
  | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
Z
zengyawen 已提交
473 474

- 返回值:
Z
zengyawen 已提交
475
    | 参数名 | 说明 |
Z
zengyawen 已提交
476
  | -------- | -------- |
Z
zengyawen 已提交
477
  | Promise&lt;[Location](#location)&gt; | 返回位置信息。 |
Z
zengyawen 已提交
478

L
liu-binjun 已提交
479

Z
zengyawen 已提交
480
- 示例:
Z
zengyawen 已提交
481
  
Z
zengyawen 已提交
482 483 484 485 486 487 488 489 490 491 492 493 494 495
  ```
  var requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
  locationEventListener.getCurrentLocation(requestInfo).then((result) => {
      console.log('current location: ' + JSON.stringify(result));
  });
  ```


## geolocation.getLastLocation

getLastLocation(callback: AsyncCallback&lt;Location&gt;) : void

获取上一次位置,使用callback回调异步返回结果。

L
liu-binjun 已提交
496 497 498 499
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
500
- 参数:
Z
zengyawen 已提交
501
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
502
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
503
  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收上次位置的回调。 |
Z
zengyawen 已提交
504

L
liu-binjun 已提交
505

Z
zengyawen 已提交
506
- 示例:
Z
zengyawen 已提交
507
  
Z
zengyawen 已提交
508 509 510 511 512 513 514 515 516 517 518 519 520
  ```
  geolocation.getLastLocation((err, data) => {
      console.log('getLastLocation: ' + err + " data: " + JSON.stringify(data));
  });
  ```


## geolocation.getLastLocation

getLastLocation() : Promise&lt;Location&gt;

获取上一次位置,使用Promise方式异步返回结果。

L
liu-binjun 已提交
521 522 523 524
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
525
- 返回值:
Z
zengyawen 已提交
526
    | 参数名 | 说明 |
Z
zengyawen 已提交
527
  | -------- | -------- |
Z
zengyawen 已提交
528
  | Promise&lt;[Location](#location)&gt; | 返回上次位置信息。 |
Z
zengyawen 已提交
529

L
liu-binjun 已提交
530

Z
zengyawen 已提交
531
- 示例:
Z
zengyawen 已提交
532
  
Z
zengyawen 已提交
533 534 535 536 537 538 539 540 541 542 543 544 545 546
  ```
  geolocation.getLastLocation().then((result) => {
      console.log('getLastLocation: result: ' + JSON.stringify(result));
  });
  ```


## geolocation.isLocationEnabled

isLocationEnabled(callback: AsyncCallback&lt;boolean&gt;) : void


判断位置服务是否已经打开,使用callback回调异步返回结果。

L
liu-binjun 已提交
547 548 549
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core
Z
zengyawen 已提交
550 551

- 参数:
Z
zengyawen 已提交
552
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
553
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
554
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
Z
zengyawen 已提交
555

L
liu-binjun 已提交
556

Z
zengyawen 已提交
557
- 示例:
Z
zengyawen 已提交
558
  
Z
zengyawen 已提交
559 560 561 562 563 564 565 566 567 568 569 570 571
  ```
  geolocation.isLocationEnabled((err, data) => {
      console.log('isLocationEnabled: ' + err + " data: " + data);
  });
  ```


## geolocation.isLocationEnabled

isLocationEnabled() : Promise&lt;boolean&gt;

判断位置服务是否已经开启,使用Promise方式异步返回结果。

L
liu-binjun 已提交
572 573 574 575
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
576
- 返回值:
Z
zengyawen 已提交
577
    | 参数名 | 说明 |
Z
zengyawen 已提交
578
  | -------- | -------- |
Z
zengyawen 已提交
579
  | Promise&lt;boolean&gt; | 返回位置服务是否可用的状态。 |
Z
zengyawen 已提交
580 581

- 示例:
Z
zengyawen 已提交
582
  
Z
zengyawen 已提交
583 584 585 586 587 588 589 590 591 592 593 594 595 596
  ```
  geolocation.isLocationEnabled().then((result) => {
      console.log('promise, isLocationEnabled: ' + result);
  });
  ```


## geolocation.requestEnableLocation

requestEnableLocation(callback: AsyncCallback&lt;boolean&gt;) : void


请求打开位置服务,使用callback回调异步返回结果。

L
liu-binjun 已提交
597 598 599
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core
Z
zengyawen 已提交
600 601

- 参数:
Z
zengyawen 已提交
602
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
603
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
604
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |
Z
zengyawen 已提交
605

L
liu-binjun 已提交
606

Z
zengyawen 已提交
607
- 示例:
Z
zengyawen 已提交
608
  
Z
zengyawen 已提交
609 610 611 612 613 614 615 616 617 618 619 620 621
  ```
  geolocation.requestEnableLocation((err, data) => {
      console.log('requestEnableLocation: ' + err + " data: " + data);
  });
  ```


## geolocation.requestEnableLocation

requestEnableLocation() : Promise&lt;boolean&gt;

请求打开位置服务,使用Promise方式异步返回结果。

L
liu-binjun 已提交
622 623 624 625
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
626
- 返回值:
Z
zengyawen 已提交
627
    | 参数名 | 说明 |
Z
zengyawen 已提交
628
  | -------- | -------- |
Z
zengyawen 已提交
629
  | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |
Z
zengyawen 已提交
630

L
liu-binjun 已提交
631

Z
zengyawen 已提交
632
- 示例:
Z
zengyawen 已提交
633
  
Z
zengyawen 已提交
634 635 636 637 638 639 640 641 642 643 644 645 646
  ```
  geolocation.requestEnableLocation().then((result) => {
      console.log('promise, requestEnableLocation: ' + result);
  });
  ```


## geolocation.isGeoServiceAvailable

isGeoServiceAvailable(callback: AsyncCallback&lt;boolean&gt;) : void

判断(逆)地理编码服务状态,使用callback回调异步返回结果。

L
liu-binjun 已提交
647 648 649 650
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geocoder

Z
zengyawen 已提交
651
- 参数:
Z
zengyawen 已提交
652
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
653
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
654
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收地理编码服务状态的回调。 |
Z
zengyawen 已提交
655

L
liu-binjun 已提交
656

Z
zengyawen 已提交
657
- 示例:
Z
zengyawen 已提交
658
  
Z
zengyawen 已提交
659 660 661 662 663 664 665 666 667 668 669 670 671
  ```
  geolocation.isGeoServiceAvailable((err, data) => {
      console.log('isGeoServiceAvailable: ' + err + " data: " + data);
  });
  ```


## geolocation.isGeoServiceAvailable

isGeoServiceAvailable() : Promise&lt;boolean&gt;

判断(逆)地理编码服务状态,使用Promise方式异步返回结果。

L
liu-binjun 已提交
672 673 674 675
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geocoder

Z
zengyawen 已提交
676
- 返回值:
Z
zengyawen 已提交
677
    | 参数名 | 说明 |
Z
zengyawen 已提交
678
  | -------- | -------- |
Z
zengyawen 已提交
679
  | Promise&lt;boolean&gt; | 返回地理编码服务是否可用的状态。 |
Z
zengyawen 已提交
680

L
liu-binjun 已提交
681

Z
zengyawen 已提交
682
- 示例:
Z
zengyawen 已提交
683
  
Z
zengyawen 已提交
684 685 686 687 688 689 690 691 692 693 694 695 696 697
  ```
  geolocation.isGeoServiceAvailable().then((result) => {
      console.log('promise, isGeoServiceAvailable: ' + result);
  });
  ```



## geolocation.getAddressesFromLocation

getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;) : void

调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。

L
liu-binjun 已提交
698 699 700 701
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geocoder

Z
zengyawen 已提交
702
- 参数:
Z
zengyawen 已提交
703
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
704
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
705 706
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 设置接收逆地理编码请求的回调参数。 |
Z
zengyawen 已提交
707 708

- 示例:
Z
zengyawen 已提交
709
  
Z
zengyawen 已提交
710 711 712 713 714 715 716 717 718 719 720 721 722 723
  ```
  var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
  geolocation.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
      console.log('getAddressesFromLocation: ' + err + " data: " + JSON.stringify(data));
  });
  ```


## geolocation.getAddressesFromLocation

getAddressesFromLocation(request: ReverseGeoCodeRequest) : Promise&lt;Array&lt;GeoAddress&gt;&gt;;

调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。

L
liu-binjun 已提交
724 725 726 727
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geocoder

Z
zengyawen 已提交
728
- 参数:
Z
zengyawen 已提交
729
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
730
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
731
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
Z
zengyawen 已提交
732 733

- 返回值:
Z
zengyawen 已提交
734
    | 参数名 | 说明 |
Z
zengyawen 已提交
735
  | -------- | -------- |
Z
zengyawen 已提交
736
  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 返回地理描述信息。 |
Z
zengyawen 已提交
737 738

- 示例:
Z
zengyawen 已提交
739
  
Z
zengyawen 已提交
740 741 742 743 744 745 746 747 748 749 750 751 752 753
  ```
  var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
  geolocation.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
      console.log('getAddressesFromLocation: ' + JSON.stringify(data));
  });
  ```


## geolocation.getAddressesFromLocationName

getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;) : void

调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。

L
liu-binjun 已提交
754 755 756 757
**需要权限**:ohos.permission.LOCATION

**系统能力**:SystemCapability.Location.Location.Geocoder

Z
zengyawen 已提交
758
- 参数:
Z
zengyawen 已提交
759
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
760
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
761 762
  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 设置接收地理编码请求的回调参数。 |
Z
zengyawen 已提交
763

L
liu-binjun 已提交
764

Z
zengyawen 已提交
765
- 示例:
Z
zengyawen 已提交
766
  
Z
zengyawen 已提交
767 768 769 770 771 772 773 774 775 776 777 778 779 780
  ```
  var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
  geolocation.getAddressesFromLocationName(geocodeRequest, (err, data) => {
      console.log('getAddressesFromLocationName: ' + err + " data: " + JSON.stringify(data));
  });
  ```


## geolocation.getAddressesFromLocationName

getAddressesFromLocationName(request: GeoCodeRequest) : Promise&lt;Array&lt;GeoAddress&gt;&gt;

调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。

L
liu-binjun 已提交
781
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
782

L
liu-binjun 已提交
783
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
784

Z
zengyawen 已提交
785
- 参数:
Z
zengyawen 已提交
786
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
787
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
788
  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
Z
zengyawen 已提交
789 790

- 返回值:
Z
zengyawen 已提交
791
    | 参数名 | 说明 |
Z
zengyawen 已提交
792
  | -------- | -------- |
Z
zengyawen 已提交
793
  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 设置接收地理编码请求的回调参数。 |
Z
zengyawen 已提交
794 795

- 示例:
Z
zengyawen 已提交
796
  
Z
zengyawen 已提交
797 798 799 800 801 802 803 804 805
  ```
  var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
  geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => {
      console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
  });
  ```



L
liu-binjun 已提交
806
## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
Z
zengyawen 已提交
807 808 809 810 811

getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;) : void;

获取GNSS芯片缓存位置的个数。

L
liu-binjun 已提交
812
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
813

L
liu-binjun 已提交
814
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
815

Z
zengyawen 已提交
816
- 参数:
Z
zengyawen 已提交
817
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
818
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
819
  | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
Z
zengyawen 已提交
820 821

- 示例:
Z
zengyawen 已提交
822
  
Z
zengyawen 已提交
823 824 825 826 827 828 829
  ```
  geolocation.getCachedGnssLocationsSize((err, size) => {
      console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size);
  });
  ```


L
liu-binjun 已提交
830
## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
Z
zengyawen 已提交
831 832 833 834 835

getCachedGnssLocationsSize() : Promise&lt;number&gt;;

获取GNSS芯片缓存位置的个数。

L
liu-binjun 已提交
836
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
837

L
liu-binjun 已提交
838
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
839

Z
zengyawen 已提交
840
- 返回值:
Z
zengyawen 已提交
841
    | 参数名 | 说明 |
Z
zengyawen 已提交
842
  | -------- | -------- |
Z
zengyawen 已提交
843
  | Promise&lt;number&gt; | 返回GNSS缓存位置的个数。 |
Z
zengyawen 已提交
844 845

- 示例:
Z
zengyawen 已提交
846
  
Z
zengyawen 已提交
847 848 849 850 851 852 853
  ```
  geolocation.getCachedGnssLocationsSize().then((result) => {
      console.log('promise, getCachedGnssLocationsSize: ' + result);
  });
  ```


L
liu-binjun 已提交
854
## geolocation.flushCachedGnssLocations<sup>8+</sup>
Z
zengyawen 已提交
855 856 857 858 859

flushCachedGnssLocations(callback: AsyncCallback&lt;boolean&gt;) : void;

读取并清空GNSS芯片所有缓存位置。

L
liu-binjun 已提交
860
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
861

L
liu-binjun 已提交
862
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
863

Z
zengyawen 已提交
864
- 参数:
Z
zengyawen 已提交
865
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
866
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
867
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 |
Z
zengyawen 已提交
868 869

- 示例:
Z
zengyawen 已提交
870
  
Z
zengyawen 已提交
871 872 873 874 875 876 877
  ```
  geolocation.flushCachedGnssLocations((err, result) => {
      console.log('flushCachedGnssLocations: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
878
## geolocation.flushCachedGnssLocations<sup>8+</sup>
Z
zengyawen 已提交
879 880 881 882 883

flushCachedGnssLocations() : Promise&lt;boolean&gt;;

读取并清空GNSS芯片所有缓存位置。

L
liu-binjun 已提交
884
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
885

L
liu-binjun 已提交
886
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
887

Z
zengyawen 已提交
888
- 返回值:
Z
zengyawen 已提交
889
    | 参数名 | 说明 |
Z
zengyawen 已提交
890
  | -------- | -------- |
Z
zengyawen 已提交
891
  | Promise&lt;boolean&gt; | 清空所有GNSS缓存位置是否成功。 |
Z
zengyawen 已提交
892 893

- 示例:
Z
zengyawen 已提交
894
  
Z
zengyawen 已提交
895 896 897 898 899 900 901
  ```
  geolocation.flushCachedGnssLocations().then((result) => {
      console.log('promise, flushCachedGnssLocations: ' + result);
  });
  ```


L
liu-binjun 已提交
902
## geolocation.sendCommand<sup>8+</sup>
Z
zengyawen 已提交
903 904 905 906 907

sendCommand(command: LocationCommand, callback: AsyncCallback&lt;boolean&gt;) : void;

给位置服务子系统的各个部件发送扩展命令。只有系统应用才能调用。

L
liu-binjun 已提交
908
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
909 910 911

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
912
- 参数:
Z
zengyawen 已提交
913
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
914
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
915 916
  | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收命令发送的结果。 |
Z
zengyawen 已提交
917 918

- 示例:
Z
zengyawen 已提交
919
  
Z
zengyawen 已提交
920 921 922 923 924 925 926 927
  ```
  var requestInfo = {'scenario': 0x301, 'command': "command_1"};
  geolocation.sendCommand(requestInfo, (err, result) => {
      console.log('sendCommand: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
928
## geolocation.sendCommand<sup>8+</sup>
Z
zengyawen 已提交
929 930 931 932 933

sendCommand(command: LocationCommand) : Promise&lt;boolean&gt;;

给位置服务子系统的各个部件发送扩展命令。只有系统应用才能调用。

L
liu-binjun 已提交
934
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
935 936 937

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
938
- 参数:
Z
zengyawen 已提交
939
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
940
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
941
  | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
Z
zengyawen 已提交
942 943

- 返回值:
Z
zengyawen 已提交
944
    | 参数名 | 说明 |
Z
zengyawen 已提交
945
  | -------- | -------- |
Z
zengyawen 已提交
946
  | Promise&lt;boolean&gt; | 表示命令发送成功或失败。 |
Z
zengyawen 已提交
947 948

- 示例:
Z
zengyawen 已提交
949
  
Z
zengyawen 已提交
950 951 952 953 954 955 956 957
  ```
  var requestInfo = {'scenario': 0x301, 'command': "command_1"};
  geolocation.sendCommand(requestInfo).then((result) => {
      console.log('promise, sendCommand: ' + result);
  });
  ```


L
liu-binjun 已提交
958
## geolocation.isLocationPrivacyConfirmed<sup>8+</sup>
Z
zengyawen 已提交
959 960 961 962 963

isLocationPrivacyConfirmed(type : LocationPrivacyType, callback: AsyncCallback&lt;boolean&gt;) : void;

查询用户是否同意定位服务隐私申明,是否同意启用定位服务。只有系统应用才能调用。

L
liu-binjun 已提交
964
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
965 966 967

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
968
- 参数:
Z
zengyawen 已提交
969
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
970
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
971 972
  | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 表示用户是否同意定位服务隐私申明。 |
Z
zengyawen 已提交
973 974

- 示例:
Z
zengyawen 已提交
975
  
Z
zengyawen 已提交
976 977 978 979 980 981 982
  ```
  geolocation.isLocationPrivacyConfirmed(1, (err, result) => {
      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
983
## geolocation.isLocationPrivacyConfirmed<sup>8+</sup>
Z
zengyawen 已提交
984 985 986 987 988

isLocationPrivacyConfirmed(type : LocationPrivacyType,) : Promise&lt;boolean&gt;;

查询用户是否同意定位服务隐私申明,是否同意启用定位服务。只有系统应用才能调用。

L
liu-binjun 已提交
989
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
990 991 992

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
993
- 参数:
Z
zengyawen 已提交
994
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
995
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
996
  | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
Z
zengyawen 已提交
997 998

- 返回值:
Z
zengyawen 已提交
999
    | 参数名 | 说明 |
Z
zengyawen 已提交
1000
  | -------- | -------- |
Z
zengyawen 已提交
1001
  | Promise&lt;boolean&gt; | 表示用户是否同意定位服务隐私申明。 |
Z
zengyawen 已提交
1002 1003

- 示例:
Z
zengyawen 已提交
1004
  
Z
zengyawen 已提交
1005 1006 1007 1008 1009 1010 1011
  ```
  geolocation.isLocationPrivacyConfirmed(1).then((result) => {
      console.log('promise, isLocationPrivacyConfirmed: ' + result);
  });
  ```


L
liu-binjun 已提交
1012
## geolocation.setLocationPrivacyConfirmStatus<sup>8+</sup>
Z
zengyawen 已提交
1013 1014 1015 1016 1017

setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed: boolean, callback: AsyncCallback&lt;boolean&gt;) : void;

设置用户勾选定位服务隐私申明的状态,记录用户是否同意启用定位服务。只有系统应用才能调用。

L
liu-binjun 已提交
1018
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1019 1020 1021

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1022
- 参数:
Z
zengyawen 已提交
1023
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1024
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1025 1026 1027
  | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
  | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 表示操作是否成功。 |
Z
zengyawen 已提交
1028 1029

- 示例:
Z
zengyawen 已提交
1030
  
Z
zengyawen 已提交
1031 1032 1033 1034 1035 1036 1037
  ```
  geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => {
      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
1038
## geolocation.setLocationPrivacyConfirmStatus<sup>8+</sup>
Z
zengyawen 已提交
1039 1040 1041 1042 1043

setLocationPrivacyConfirmStatus(type : LocationPrivacyType, isConfirmed : boolean) : Promise&lt;boolean&gt;;

设置用户勾选定位服务隐私申明的状态,记录用户是否同意启用定位服务。只有系统应用才能调用。

L
liu-binjun 已提交
1044
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1045 1046 1047

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1048
- 参数:
Z
zengyawen 已提交
1049
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1050
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1051 1052
  | type | LocationPrivacyType | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
  | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
Z
zengyawen 已提交
1053 1054

- 返回值:
Z
zengyawen 已提交
1055
    | 参数名 | 说明 |
Z
zengyawen 已提交
1056
  | -------- | -------- |
Z
zengyawen 已提交
1057
  | Promise&lt;boolean&gt; | 表示操作是否成功。 |
Z
zengyawen 已提交
1058 1059

- 示例:
Z
zengyawen 已提交
1060
  
Z
zengyawen 已提交
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072
  ```
  geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => {
      console.log('promise, setLocationPrivacyConfirmStatus: ' + result);
  });
  ```



## LocationRequestPriority

位置请求中位置信息优先级设置。

L
liu-binjun 已提交
1073
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1074 1075 1076

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1077
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1078
| -------- | -------- | -------- |
Z
zengyawen 已提交
1079 1080 1081 1082
| UNSET | 0x200 | 表示未设置优先级。 |
| ACCURACY | 0x201 | 表示精度优先。 |
| LOW_POWER | 0x202 | 表示低功耗优先。 |
| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到1个位置,可以将优先级设置为该字段。 |
Z
zengyawen 已提交
1083 1084 1085 1086 1087


## LocationRequestScenario

  位置请求中定位场景设置。
L
liu-binjun 已提交
1088

L
liu-binjun 已提交
1089
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1090 1091 1092

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1093
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1094
| -------- | -------- | -------- |
Z
zengyawen 已提交
1095 1096 1097 1098 1099 1100
| UNSET | 0x300 | 表示未设置场景信息。 |
| NAVIGATION | 0x301 | 表示导航场景。 |
| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。 |
| CAR_HAILING | 0x303 | 表示打车场景。 |
| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。 |
| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 |
Z
zengyawen 已提交
1101 1102 1103 1104 1105 1106


## GeoLocationErrorCode

位置服务中的错误码信息。

L
liu-binjun 已提交
1107
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1108 1109 1110

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1111
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1112
| -------- | -------- | -------- |
Z
zengyawen 已提交
1113 1114 1115 1116 1117 1118 1119
| INPUT_PARAMS_ERROR | 101 | 表示输入参数错误。 |
| REVERSE_GEOCODE_ERROR | 102 | 表示逆地理编码接口调用失败。 |
| GEOCODE_ERROR | 103 | 表示地理编码接口调用失败。 |
| LOCATOR_ERROR | 104 | 表示定位失败。 |
| LOCATION_SWITCH_ERROR | 105 | 表示定位开关。 |
| LAST_KNOWN_LOCATION_ERROR | 106 | 表示获取上次位置失败。 |
| LOCATION_REQUEST_TIMEOUT_ERROR | 107 | 表示单次定位,没有在指定时间内返回位置。 |
Z
zengyawen 已提交
1120 1121 1122 1123 1124 1125


## ReverseGeoCodeRequest

逆地理编码请求接口。

L
liu-binjun 已提交
1126
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1127

L
liu-binjun 已提交
1128
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
1129

Z
zengyawen 已提交
1130
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1131
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1132 1133 1134 1135
| locale | string | 否 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
| longitude | number | 是 | 表示经度信息,正值表示东经,负值表示西经。 |
| maxItems | number | 否 | 指定返回位置信息的最大个数。 |
Z
zengyawen 已提交
1136 1137 1138 1139 1140 1141


## GeoCodeRequest

地理编码请求接口。

L
liu-binjun 已提交
1142
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1143

L
liu-binjun 已提交
1144
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
1145

Z
zengyawen 已提交
1146
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1147
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1148 1149 1150 1151 1152 1153 1154
| locale | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| description | number | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 |
| maxItems | number | 否 | 表示返回位置信息的最大个数。 |
| minLatitude | number | 否 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。 |
| minLongitude | number | 否 | 表示最小经度信息。 |
| maxLatitude | number | 否 | 表示最大纬度信息。 |
| maxLongitude | number | 否 | 表示最大经度信息。 |
Z
zengyawen 已提交
1155 1156 1157 1158 1159 1160


## GeoAddress

地理编码类型。

L
liu-binjun 已提交
1161
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1162

L
liu-binjun 已提交
1163
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
1164

Z
zengyawen 已提交
1165
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1166
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184
| latitude | number | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
| longitude | number | 否 | 表示经度信息,正值表示东经,负值表是西经。 |
| locale | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| placeName | string | 否 | 表示地区信息。 |
| countryCode | string | 否 | 表示国家码信息。 |
| countryName | string | 否 | 表示国家信息。 |
| administrativeArea | string | 否 | 表示省份区域信息。 |
| subAdministrativeArea | string | 否 | 表示表示子区域信息。 |
| locality | string | 否 | 表示城市信息。 |
| subLocality | string | 否 | 表示子城市信息。 |
| roadName | string | 否 | 表示路名信息。 |
| subRoadName | string | 否 | 表示子路名信息。 |
| premises | string | 否 | 表示门牌号信息。 |
| postalCode | string | 否 | 表示邮政编码信息。 |
| phoneNumber | string | 否 | 表示联系方式信息。 |
| addressUrl | string | 否 | 表示位置信息附件的网址信息。 |
| descriptions | Array&lt;string&gt; | 否 | 表示附加的描述信息。 |
| descriptionsSize | number | 否 | 表示附加的描述信息数量。 |
Z
zengyawen 已提交
1185 1186 1187 1188 1189 1190


## LocationRequest

位置信息请求类型。

L
liu-binjun 已提交
1191
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1192 1193 1194

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1195
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1196
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1197 1198 1199 1200 1201
| priority | [LocationRequestPriority](#locationrequestpriority) | 否 | 表示优先级信息。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 表示场景信息。 |
| timeInterval | number | 否 | 表示上报位置信息的时间间隔。 |
| distanceInterval | number | 否 | 表示上报位置信息的距离间隔。 |
| maxAccuracy | number | 否 | 表示精度信息。 |
Z
zengyawen 已提交
1202 1203 1204 1205 1206 1207


## CurrentLocationRequest

当前位置信息请求类型。

L
liu-binjun 已提交
1208
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1209 1210 1211

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1212
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1213
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1214 1215 1216 1217
| priority | [LocationRequestPriority](#locationrequestpriority) | 否 | 表示优先级信息。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 否 | 表示场景信息。 |
| maxAccuracy | number | 否 | 表示精度信息,单位是米。 |
| timeoutMs | number | 否 | 表示超时时间,单位是毫秒,最小为1000毫秒。 |
Z
zengyawen 已提交
1218 1219


L
liu-binjun 已提交
1220
## SatelliteStatusInfo<sup>8+</sup>
Z
zengyawen 已提交
1221 1222 1223

卫星状态信息。

L
liu-binjun 已提交
1224
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1225

L
liu-binjun 已提交
1226
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
1227

Z
zengyawen 已提交
1228
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1229
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1230 1231 1232 1233 1234 1235
| satellitesNumber | number | 是 | 表示卫星个数。 |
| satelliteIds | Array&lt;number&gt; | 是 | 表示每个卫星的ID,数组类型。 |
| carrierToNoiseDensitys | Array&lt;number&gt; | 是 | 表示载波噪声功率谱密度比,即cn0。 |
| altitudes | Array&lt;number&gt; | 是 | 表示高程信息。 |
| azimuths | Array&lt;number&gt; | 是 | 表示方位角。 |
| carrierFrequencies | Array&lt;number&gt; | 是 | 表示载波频率。 |
Z
zengyawen 已提交
1236 1237


L
liu-binjun 已提交
1238
## CachedGnssLocationsRequest<sup>8+</sup>
Z
zengyawen 已提交
1239 1240 1241

请求订阅GNSS缓存位置上报功能接口的配置参数。

L
liu-binjun 已提交
1242
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1243

L
liu-binjun 已提交
1244
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
1245

Z
zengyawen 已提交
1246
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1247
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1248 1249
| reportingPeriodSec | number | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。 |
| wakeUpCacheQueueFull | boolean | 是 | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 |
Z
zengyawen 已提交
1250 1251


L
liu-binjun 已提交
1252
## Geofence<sup>8+</sup>
Z
zengyawen 已提交
1253 1254 1255

GNSS围栏的配置参数。目前只支持圆形围栏。

L
liu-binjun 已提交
1256
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1257

L
liu-binjun 已提交
1258
**系统能力**:SystemCapability.Location.Location.Geofence
L
liu-binjun 已提交
1259

Z
zengyawen 已提交
1260
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1261
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1262 1263 1264 1265
| latitude | number | 是 | 表示纬度。 |
| longitude | number | 是 | 表示经度。 |
| radius | number | 是 | 表示圆形围栏的半径。 |
| expiration | number | 是 | 围栏存活的时间,单位是毫秒。 |
Z
zengyawen 已提交
1266 1267


L
liu-binjun 已提交
1268
## GeofenceRequest<sup>8+</sup>
Z
zengyawen 已提交
1269 1270 1271

请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。

L
liu-binjun 已提交
1272
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1273

L
liu-binjun 已提交
1274
**系统能力**:SystemCapability.Location.Location.Geofence
L
liu-binjun 已提交
1275

Z
zengyawen 已提交
1276
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1277
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1278 1279 1280
| priority | LocationRequestPriority | 是 | 表示位置信息优先级。 |
| scenario | LocationRequestScenario | 是 | 表示定位场景。 |
| geofence | Geofence | 是 | 表示围栏信息。 |
Z
zengyawen 已提交
1281 1282


L
liu-binjun 已提交
1283
## LocationPrivacyType<sup>8+</sup>
Z
zengyawen 已提交
1284 1285 1286

定位服务隐私协议类型。

L
liu-binjun 已提交
1287
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1288 1289 1290

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1291
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1292
| -------- | -------- | -------- |
Z
zengyawen 已提交
1293 1294 1295
| OTHERS | 0 | 其他场景。 |
| STARTUP | 1 | 开机向导场景下的隐私协议。 |
| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 |
Z
zengyawen 已提交
1296 1297


L
liu-binjun 已提交
1298
## LocationCommand<sup>8+</sup>
Z
zengyawen 已提交
1299 1300 1301

扩展命令结构体。

L
liu-binjun 已提交
1302
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1303 1304 1305

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1306
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1307
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1308 1309
| scenario | LocationRequestScenario | 是 | 表示定位场景。 |
| command | string | 是 | 扩展命令字符串。 |
Z
zengyawen 已提交
1310 1311 1312 1313 1314 1315


## Location

位置信息类型。

L
liu-binjun 已提交
1316
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1317 1318 1319

**系统能力**:SystemCapability.Location.Location.Core

Z
zengyawen 已提交
1320
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1321
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1322 1323 1324 1325 1326 1327 1328 1329 1330 1331
| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
| longitude | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 |
| altitude | number | 是 | 表示高度信息,单位米。 |
| accuracy | number | 是 | 表示精度信息,单位米。 |
| speed | number | 是 | 表示速度信息,单位米每秒。 |
| timeStamp | number | 是 | 表示位置时间戳,UTC格式。 |
| direction | number | 是 | 表示航向信息。 |
| timeSinceBoot | number | 是 | 表示位置时间戳,开机时间格式。 |
| additions | Array&lt;string&gt; | 否 | 附加信息。 |
| additionSize | number | 否 | 附加信息数量。 |