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