js-apis-geolocation.md 45.0 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
  ```
  geolocation.requestEnableLocation().then((result) => {
      console.log('promise, requestEnableLocation: ' + result);
  });
  ```


L
liu-binjun 已提交
641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746
## geolocation.enableLocation

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

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

**系统API**:此接口为系统接口,三方应用不支持调用。

**需要权限**:ohos.permission.LOCATION

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

- 参数:
    | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |


- 示例:
  
  ```
  geolocation.enableLocation((err, data) => {
      console.log('enableLocation: ' + err + " data: " + data);
  });
  ```


## geolocation.enableLocation

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

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

**系统API**:此接口为系统接口,三方应用不支持调用。

**需要权限**:ohos.permission.LOCATION

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

- 返回值:
    | 参数名 | 说明 |
  | -------- | -------- |
  | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |


- 示例:
  
  ```
  geolocation.enableLocation().then((result) => {
      console.log('promise, enableLocation: ' + result);
  });
  ```

## geolocation.disableLocation

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

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

**系统API**:此接口为系统接口,三方应用不支持调用。

**需要权限**:ohos.permission.LOCATION

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

- 参数:
    | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收位置服务状态的回调。 |


- 示例:
  
  ```
  geolocation.disableLocation((err, data) => {
      console.log('disableLocation: ' + err + " data: " + data);
  });
  ```


## geolocation.disableLocation

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

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

**系统API**:此接口为系统接口,三方应用不支持调用。

**需要权限**:ohos.permission.LOCATION

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

- 返回值:
    | 参数名 | 说明 |
  | -------- | -------- |
  | Promise&lt;boolean&gt; | 返回位置服务是否可用。 |


- 示例:
  
  ```
  geolocation.disableLocation().then((result) => {
      console.log('promise, disableLocation: ' + result);
  });
  ```

Z
zengyawen 已提交
747 748 749 750 751 752
## geolocation.isGeoServiceAvailable

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

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

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

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

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

L
liu-binjun 已提交
762

Z
zengyawen 已提交
763
- 示例:
Z
zengyawen 已提交
764
  
Z
zengyawen 已提交
765 766 767 768 769 770 771 772 773 774 775 776 777
  ```
  geolocation.isGeoServiceAvailable((err, data) => {
      console.log('isGeoServiceAvailable: ' + err + " data: " + data);
  });
  ```


## geolocation.isGeoServiceAvailable

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

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

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

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

Z
zengyawen 已提交
782
- 返回值:
Z
zengyawen 已提交
783
    | 参数名 | 说明 |
Z
zengyawen 已提交
784
  | -------- | -------- |
Z
zengyawen 已提交
785
  | Promise&lt;boolean&gt; | 返回地理编码服务是否可用的状态。 |
Z
zengyawen 已提交
786

L
liu-binjun 已提交
787

Z
zengyawen 已提交
788
- 示例:
Z
zengyawen 已提交
789
  
Z
zengyawen 已提交
790 791 792 793 794 795 796 797 798 799 800 801 802 803
  ```
  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 已提交
804 805 806 807
**需要权限**:ohos.permission.LOCATION

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

Z
zengyawen 已提交
808
- 参数:
Z
zengyawen 已提交
809
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
810
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
811 812
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 设置接收逆地理编码请求的回调参数。 |
Z
zengyawen 已提交
813 814

- 示例:
Z
zengyawen 已提交
815
  
Z
zengyawen 已提交
816 817 818 819 820 821 822 823 824 825 826 827 828 829
  ```
  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 已提交
830 831 832 833
**需要权限**:ohos.permission.LOCATION

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

Z
zengyawen 已提交
834
- 参数:
Z
zengyawen 已提交
835
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
836
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
837
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
Z
zengyawen 已提交
838 839

- 返回值:
Z
zengyawen 已提交
840
    | 参数名 | 说明 |
Z
zengyawen 已提交
841
  | -------- | -------- |
Z
zengyawen 已提交
842
  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 返回地理描述信息。 |
Z
zengyawen 已提交
843 844

- 示例:
Z
zengyawen 已提交
845
  
Z
zengyawen 已提交
846 847 848 849 850 851 852 853 854 855 856 857 858 859
  ```
  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 已提交
860 861 862 863
**需要权限**:ohos.permission.LOCATION

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

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

L
liu-binjun 已提交
870

Z
zengyawen 已提交
871
- 示例:
Z
zengyawen 已提交
872
  
Z
zengyawen 已提交
873 874 875 876 877 878 879 880 881 882 883 884 885 886
  ```
  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 已提交
887
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
888

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

Z
zengyawen 已提交
891
- 参数:
Z
zengyawen 已提交
892
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
893
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
894
  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
Z
zengyawen 已提交
895 896

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

- 示例:
Z
zengyawen 已提交
902
  
Z
zengyawen 已提交
903 904 905 906 907 908 909 910 911
  ```
  var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
  geolocation.getAddressesFromLocationName(geocodeRequest).then((result) => {
      console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
  });
  ```



L
liu-binjun 已提交
912
## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
Z
zengyawen 已提交
913 914 915 916 917

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

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

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

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

Z
zengyawen 已提交
922
- 参数:
Z
zengyawen 已提交
923
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
924
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
925
  | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
Z
zengyawen 已提交
926 927

- 示例:
Z
zengyawen 已提交
928
  
Z
zengyawen 已提交
929 930 931 932 933 934 935
  ```
  geolocation.getCachedGnssLocationsSize((err, size) => {
      console.log('getCachedGnssLocationsSize: err:' + err + " size: " + size);
  });
  ```


L
liu-binjun 已提交
936
## geolocation.getCachedGnssLocationsSize<sup>8+</sup>
Z
zengyawen 已提交
937 938 939 940 941

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

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

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

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

Z
zengyawen 已提交
946
- 返回值:
Z
zengyawen 已提交
947
    | 参数名 | 说明 |
Z
zengyawen 已提交
948
  | -------- | -------- |
Z
zengyawen 已提交
949
  | Promise&lt;number&gt; | 返回GNSS缓存位置的个数。 |
Z
zengyawen 已提交
950 951

- 示例:
Z
zengyawen 已提交
952
  
Z
zengyawen 已提交
953 954 955 956 957 958 959
  ```
  geolocation.getCachedGnssLocationsSize().then((result) => {
      console.log('promise, getCachedGnssLocationsSize: ' + result);
  });
  ```


L
liu-binjun 已提交
960
## geolocation.flushCachedGnssLocations<sup>8+</sup>
Z
zengyawen 已提交
961 962 963 964 965

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

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

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

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

Z
zengyawen 已提交
970
- 参数:
Z
zengyawen 已提交
971
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
972
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
973
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收清空GNSS芯片缓存位置操作的结果。 |
Z
zengyawen 已提交
974 975

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


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

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

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

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

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

Z
zengyawen 已提交
994
- 返回值:
Z
zengyawen 已提交
995
    | 参数名 | 说明 |
Z
zengyawen 已提交
996
  | -------- | -------- |
Z
zengyawen 已提交
997
  | Promise&lt;boolean&gt; | 清空所有GNSS缓存位置是否成功。 |
Z
zengyawen 已提交
998 999

- 示例:
Z
zengyawen 已提交
1000
  
Z
zengyawen 已提交
1001 1002 1003 1004 1005 1006 1007
  ```
  geolocation.flushCachedGnssLocations().then((result) => {
      console.log('promise, flushCachedGnssLocations: ' + result);
  });
  ```


L
liu-binjun 已提交
1008
## geolocation.sendCommand<sup>8+</sup>
Z
zengyawen 已提交
1009 1010 1011 1012 1013

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

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

L
liu-binjun 已提交
1014
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1015 1016 1017

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

Z
zengyawen 已提交
1018
- 参数:
Z
zengyawen 已提交
1019
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1020
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1021 1022
  | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 用来接收命令发送的结果。 |
Z
zengyawen 已提交
1023 1024

- 示例:
Z
zengyawen 已提交
1025
  
Z
zengyawen 已提交
1026 1027 1028 1029 1030 1031 1032 1033
  ```
  var requestInfo = {'scenario': 0x301, 'command': "command_1"};
  geolocation.sendCommand(requestInfo, (err, result) => {
      console.log('sendCommand: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
1034
## geolocation.sendCommand<sup>8+</sup>
Z
zengyawen 已提交
1035 1036 1037 1038 1039

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

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

L
liu-binjun 已提交
1040
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1041 1042 1043

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

Z
zengyawen 已提交
1044
- 参数:
Z
zengyawen 已提交
1045
    | 参数名 | 类型 | 必填 | 说明 |
Z
zengyawen 已提交
1046
  | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1047
  | command | LocationCommand | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
Z
zengyawen 已提交
1048 1049

- 返回值:
Z
zengyawen 已提交
1050
    | 参数名 | 说明 |
Z
zengyawen 已提交
1051
  | -------- | -------- |
Z
zengyawen 已提交
1052
  | Promise&lt;boolean&gt; | 表示命令发送成功或失败。 |
Z
zengyawen 已提交
1053 1054

- 示例:
Z
zengyawen 已提交
1055
  
Z
zengyawen 已提交
1056 1057 1058 1059 1060 1061 1062 1063
  ```
  var requestInfo = {'scenario': 0x301, 'command': "command_1"};
  geolocation.sendCommand(requestInfo).then((result) => {
      console.log('promise, sendCommand: ' + result);
  });
  ```


L
liu-binjun 已提交
1064
## geolocation.isLocationPrivacyConfirmed<sup>8+</sup>
Z
zengyawen 已提交
1065 1066 1067 1068 1069

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

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

L
liu-binjun 已提交
1070 1071
**系统API**:此接口为系统接口,三方应用不支持调用。

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

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

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

- 示例:
Z
zengyawen 已提交
1083
  
Z
zengyawen 已提交
1084 1085 1086 1087 1088 1089 1090
  ```
  geolocation.isLocationPrivacyConfirmed(1, (err, result) => {
      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
1091
## geolocation.isLocationPrivacyConfirmed<sup>8+</sup>
Z
zengyawen 已提交
1092 1093 1094 1095 1096

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

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

L
liu-binjun 已提交
1097 1098
**系统API**:此接口为系统接口,三方应用不支持调用。

L
liu-binjun 已提交
1099
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1100 1101 1102

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

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

- 返回值:
Z
zengyawen 已提交
1109
    | 参数名 | 说明 |
Z
zengyawen 已提交
1110
  | -------- | -------- |
Z
zengyawen 已提交
1111
  | Promise&lt;boolean&gt; | 表示用户是否同意定位服务隐私申明。 |
Z
zengyawen 已提交
1112 1113

- 示例:
Z
zengyawen 已提交
1114
  
Z
zengyawen 已提交
1115 1116 1117 1118 1119 1120 1121
  ```
  geolocation.isLocationPrivacyConfirmed(1).then((result) => {
      console.log('promise, isLocationPrivacyConfirmed: ' + result);
  });
  ```


L
liu-binjun 已提交
1122
## geolocation.setLocationPrivacyConfirmStatus<sup>8+</sup>
Z
zengyawen 已提交
1123 1124 1125 1126 1127

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

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

L
liu-binjun 已提交
1128 1129
**系统API**:此接口为系统接口,三方应用不支持调用。

L
liu-binjun 已提交
1130
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1131 1132 1133

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

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

- 示例:
Z
zengyawen 已提交
1142
  
Z
zengyawen 已提交
1143 1144 1145 1146 1147 1148 1149
  ```
  geolocation.setLocationPrivacyConfirmStatus(1, true, (err, result) => {
      console.log('isLocationPrivacyConfirmed: err:' + err + " result: " + result);
  });
  ```


L
liu-binjun 已提交
1150
## geolocation.setLocationPrivacyConfirmStatus<sup>8+</sup>
Z
zengyawen 已提交
1151 1152 1153 1154 1155

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

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

L
liu-binjun 已提交
1156 1157
**系统API**:此接口为系统接口,三方应用不支持调用。

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

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

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

- 返回值:
Z
zengyawen 已提交
1169
    | 参数名 | 说明 |
Z
zengyawen 已提交
1170
  | -------- | -------- |
Z
zengyawen 已提交
1171
  | Promise&lt;boolean&gt; | 表示操作是否成功。 |
Z
zengyawen 已提交
1172 1173

- 示例:
Z
zengyawen 已提交
1174
  
Z
zengyawen 已提交
1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186
  ```
  geolocation.setLocationPrivacyConfirmStatus(1, true).then((result) => {
      console.log('promise, setLocationPrivacyConfirmStatus: ' + result);
  });
  ```



## LocationRequestPriority

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

L
liu-binjun 已提交
1187
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1188 1189 1190

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

Z
zengyawen 已提交
1191
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1192
| -------- | -------- | -------- |
Z
zengyawen 已提交
1193 1194 1195 1196
| UNSET | 0x200 | 表示未设置优先级。 |
| ACCURACY | 0x201 | 表示精度优先。 |
| LOW_POWER | 0x202 | 表示低功耗优先。 |
| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到1个位置,可以将优先级设置为该字段。 |
Z
zengyawen 已提交
1197 1198 1199 1200 1201


## LocationRequestScenario

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

L
liu-binjun 已提交
1203
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1204 1205 1206

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

Z
zengyawen 已提交
1207
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1208
| -------- | -------- | -------- |
Z
zengyawen 已提交
1209 1210 1211 1212 1213 1214
| UNSET | 0x300 | 表示未设置场景信息。 |
| NAVIGATION | 0x301 | 表示导航场景。 |
| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。 |
| CAR_HAILING | 0x303 | 表示打车场景。 |
| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。 |
| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 |
Z
zengyawen 已提交
1215 1216 1217 1218 1219 1220


## GeoLocationErrorCode

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

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

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

Z
zengyawen 已提交
1225
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1226
| -------- | -------- | -------- |
Z
zengyawen 已提交
1227 1228 1229 1230 1231 1232 1233
| 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 已提交
1234 1235 1236 1237 1238 1239


## ReverseGeoCodeRequest

逆地理编码请求接口。

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

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

Z
zengyawen 已提交
1244
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1245
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1246 1247 1248 1249
| locale | string | 否 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
| longitude | number | 是 | 表示经度信息,正值表示东经,负值表示西经。 |
| maxItems | number | 否 | 指定返回位置信息的最大个数。 |
Z
zengyawen 已提交
1250 1251 1252 1253 1254 1255


## GeoCodeRequest

地理编码请求接口。

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

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

Z
zengyawen 已提交
1260
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1261
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1262 1263 1264 1265 1266 1267 1268
| locale | string | 否 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| description | number | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 |
| maxItems | number | 否 | 表示返回位置信息的最大个数。 |
| minLatitude | number | 否 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。 |
| minLongitude | number | 否 | 表示最小经度信息。 |
| maxLatitude | number | 否 | 表示最大纬度信息。 |
| maxLongitude | number | 否 | 表示最大经度信息。 |
Z
zengyawen 已提交
1269 1270 1271 1272 1273 1274


## GeoAddress

地理编码类型。

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

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

Z
zengyawen 已提交
1279
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1280
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298
| 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 已提交
1299 1300 1301 1302 1303 1304


## LocationRequest

位置信息请求类型。

L
liu-binjun 已提交
1305
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1306 1307 1308

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

Z
zengyawen 已提交
1309
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1310
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1311 1312 1313 1314 1315
| priority | [LocationRequestPriority](#locationrequestpriority) | 否 | 表示优先级信息。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 表示场景信息。 |
| timeInterval | number | 否 | 表示上报位置信息的时间间隔。 |
| distanceInterval | number | 否 | 表示上报位置信息的距离间隔。 |
| maxAccuracy | number | 否 | 表示精度信息。 |
Z
zengyawen 已提交
1316 1317 1318 1319 1320 1321


## CurrentLocationRequest

当前位置信息请求类型。

L
liu-binjun 已提交
1322
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1323 1324 1325

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

Z
zengyawen 已提交
1326
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1327
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1328 1329 1330 1331
| priority | [LocationRequestPriority](#locationrequestpriority) | 否 | 表示优先级信息。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 否 | 表示场景信息。 |
| maxAccuracy | number | 否 | 表示精度信息,单位是米。 |
| timeoutMs | number | 否 | 表示超时时间,单位是毫秒,最小为1000毫秒。 |
Z
zengyawen 已提交
1332 1333


L
liu-binjun 已提交
1334
## SatelliteStatusInfo<sup>8+</sup>
Z
zengyawen 已提交
1335 1336 1337

卫星状态信息。

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

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

Z
zengyawen 已提交
1342
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1343
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1344 1345 1346 1347 1348 1349
| 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 已提交
1350 1351


L
liu-binjun 已提交
1352
## CachedGnssLocationsRequest<sup>8+</sup>
Z
zengyawen 已提交
1353 1354 1355

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

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

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

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


L
liu-binjun 已提交
1366
## Geofence<sup>8+</sup>
Z
zengyawen 已提交
1367 1368 1369

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

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

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

Z
zengyawen 已提交
1374
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1375
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1376 1377 1378 1379
| latitude | number | 是 | 表示纬度。 |
| longitude | number | 是 | 表示经度。 |
| radius | number | 是 | 表示圆形围栏的半径。 |
| expiration | number | 是 | 围栏存活的时间,单位是毫秒。 |
Z
zengyawen 已提交
1380 1381


L
liu-binjun 已提交
1382
## GeofenceRequest<sup>8+</sup>
Z
zengyawen 已提交
1383 1384 1385

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

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

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

Z
zengyawen 已提交
1390
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1391
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1392 1393 1394
| priority | LocationRequestPriority | 是 | 表示位置信息优先级。 |
| scenario | LocationRequestScenario | 是 | 表示定位场景。 |
| geofence | Geofence | 是 | 表示围栏信息。 |
Z
zengyawen 已提交
1395 1396


L
liu-binjun 已提交
1397
## LocationPrivacyType<sup>8+</sup>
Z
zengyawen 已提交
1398 1399 1400

定位服务隐私协议类型。

L
liu-binjun 已提交
1401
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1402 1403 1404

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

Z
zengyawen 已提交
1405
| 名称 | 默认值 | 说明 |
Z
zengyawen 已提交
1406
| -------- | -------- | -------- |
Z
zengyawen 已提交
1407 1408 1409
| OTHERS | 0 | 其他场景。 |
| STARTUP | 1 | 开机向导场景下的隐私协议。 |
| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 |
Z
zengyawen 已提交
1410 1411


L
liu-binjun 已提交
1412
## LocationCommand<sup>8+</sup>
Z
zengyawen 已提交
1413 1414 1415

扩展命令结构体。

L
liu-binjun 已提交
1416
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1417 1418 1419

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

Z
zengyawen 已提交
1420
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1421
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1422 1423
| scenario | LocationRequestScenario | 是 | 表示定位场景。 |
| command | string | 是 | 扩展命令字符串。 |
Z
zengyawen 已提交
1424 1425 1426 1427 1428 1429


## Location

位置信息类型。

L
liu-binjun 已提交
1430
**需要权限**:ohos.permission.LOCATION
L
liu-binjun 已提交
1431 1432 1433

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

Z
zengyawen 已提交
1434
| 名称 | 参数类型 | 必填 | 说明 |
Z
zengyawen 已提交
1435
| -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
1436 1437 1438 1439 1440 1441 1442 1443 1444 1445
| latitude | number | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。 |
| longitude | number | 是 | 表示经度信息,正值表示东经,负值表是西经。 |
| altitude | number | 是 | 表示高度信息,单位米。 |
| accuracy | number | 是 | 表示精度信息,单位米。 |
| speed | number | 是 | 表示速度信息,单位米每秒。 |
| timeStamp | number | 是 | 表示位置时间戳,UTC格式。 |
| direction | number | 是 | 表示航向信息。 |
| timeSinceBoot | number | 是 | 表示位置时间戳,开机时间格式。 |
| additions | Array&lt;string&gt; | 否 | 附加信息。 |
| additionSize | number | 否 | 附加信息数量。 |