• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @system.geolocation (地理位置)
2
3本模块仅提供GNSS定位、网络定位等基本功能。
4
5> **说明:**
6> - 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7> - 从API Version 9开始,该接口不再维护,推荐使用新接口[geoLocationManager](js-apis-geoLocationManager.md)。
8
9
10## 导入模块
11
12```
13import geolocation from '@system.geolocation';
14```
15
16
17## 权限列表
18
19ohos.permission.LOCATION
20
21
22## geolocation.getLocation<sup>(deprecated)</sup>
23
24getLocation(options?: GetLocationOption): void
25
26获取设备的地理位置。
27
28> **说明:**<br/>
29> 从API version 9开始废弃,建议使用[geoLocationManager.getCurrentLocation](js-apis-geoLocationManager.md#geolocationmanagergetcurrentlocation)替代。
30
31**需要权限**:ohos.permission.LOCATION
32
33**系统能力:** SystemCapability.Location.Location.Lite
34
35**参数:**
36
37| 参数名 | 类型 | 必填 | 说明 |
38| -------- | -------- | -------- | -------- |
39| options | [GetLocationOption](#getlocationoptiondeprecated) | 否 | 单次定位请求的配置参数。 |
40
41**示例:**
42
43```
44export default {
45  getLocation() {
46    geolocation.getLocation({
47      success: function(data) {
48        console.log('success get location data. latitude:' + data.latitude);
49      },
50      fail: function(data, code) {
51        console.log('fail to get location. code:' + code + ', data:' + data);
52      }
53    });
54  }
55}
56```
57
58
59## geolocation.getLocationType<sup>(deprecated)</sup>
60
61getLocationType(options?: GetLocationTypeOption): void
62
63获取当前设备支持的定位类型。
64
65> **说明:**<br/>
66> 从API version 9开始废弃。位置服务子系统仅支持gnss和network两种定位类型,后续不再提供接口查询支持的定位类型。
67
68**系统能力:** SystemCapability.Location.Location.Lite
69
70**参数:**
71
72| 参数名 | 类型 | 必填 | 说明 |
73| -------- | -------- | -------- | -------- |
74| options | [GetLocationTypeOption](#getlocationtypeoptiondeprecated) | 否 | 回调函数,用于接收查询结果,或者接收查询失败的结果。 |
75
76**示例:**
77
78```
79export default {
80  getLocationType() {
81    geolocation.getLocationType({
82      success: function(data) {
83        console.log('success get location type:' + data.types[0]);
84      },
85      fail: function(data, code) {
86        console.log('fail to get location. code:' + code + ', data:' + data);
87       },
88     });
89  },
90}
91```
92
93
94## geolocation.subscribe<sup>(deprecated)</sup>
95
96subscribe(options: SubscribeLocationOption): void
97
98订阅设备的地理位置信息。多次调用的话,只有最后一次的调用生效。
99
100> **说明:**<br/>
101> 从API version 9开始废弃,建议使用[geoLocationManager.on('locationChange')](js-apis-geoLocationManager.md#geolocationmanageronlocationchange)替代。
102
103**需要权限**:ohos.permission.LOCATION
104
105**系统能力:** SystemCapability.Location.Location.Lite
106
107**参数:**
108
109| 参数名 | 类型 | 必填 | 说明 |
110| -------- | -------- | -------- | -------- |
111| options | [SubscribeLocationOption](#subscribelocationoptiondeprecated) | 是 | 持续定位的配置参数。 |
112
113**示例:**
114
115```
116export default {
117  subscribe() {
118    geolocation.subscribe({
119      success: function(data) {
120        console.log('get location. latitude:' + data.latitude);
121      },
122      fail: function(data, code) {
123        console.log('fail to get location. code:' + code + ', data:' + data);
124      },
125    });
126  },
127}
128```
129
130
131## geolocation.unsubscribe<sup>(deprecated)</sup>
132
133unsubscribe(): void
134
135取消订阅设备的地理位置信息。
136
137> **说明:**<br/>
138> 从API version 9开始废弃,建议使用[geoLocationManager.off('locationChange')](js-apis-geoLocationManager.md#geolocationmanagerofflocationchange)替代。
139
140**需要权限**:ohos.permission.LOCATION
141
142**系统能力:** SystemCapability.Location.Location.Lite
143
144**示例:**
145
146```
147export default {
148  unsubscribe() {
149    geolocation.unsubscribe();
150  }
151}
152```
153
154
155## geolocation.getSupportedCoordTypes<sup>(deprecated)</sup>
156
157getSupportedCoordTypes(): Array&lt;string&gt;
158
159获取设备支持的坐标系类型。
160
161> **说明:**<br/>
162> 从API version 9开始废弃。位置服务子系统仅支持wgs84坐标系,后续不再提供接口查询支持的坐标系类型。
163
164**系统能力:** SystemCapability.Location.Location.Lite
165
166**返回值:**
167
168| 类型 | 非空 | 说明 |
169| -------- | -------- | -------- |
170| Array&lt;string&gt; | 是 | 表示坐标系类型,如[wgs84,&nbsp;gcj02]。 |
171
172**示例:**
173
174```
175export default {
176  getSupportedCoordTypes() {
177    var types = geolocation.getSupportedCoordTypes();
178  },
179}
180```
181
182## GetLocationOption<sup>(deprecated)</sup>
183
184单次定位请求的配置参数。
185
186> **说明:**<br/>
187> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#CurrentLocationRequest)替代。
188
189**需要权限**:ohos.permission.LOCATION
190
191**系统能力**:SystemCapability.Location.Location.Lite
192
193| 名称 | 类型 | 必填 | 说明 |
194| -------- | -------- | -------- | -------- |
195| timeout | number | 否 | 超时时间,单位为ms,默认值为30000。<br/>设置超时,是为了防止出现权限被系统拒绝、定位信号弱或者定位设置不当,导致请求阻塞的情况。超时后会使用fail回调函数。<br/>取值范围为32位正整数。如果设置值小于等于0,系统按默认值处理。 |
196| coordType | string | 否 | 坐标系的类型,可通过getSupportedCoordTypes获取可选值,缺省值为wgs84。 |
197| success | (data: [GeolocationResponse](#geolocationresponsedeprecated)) => void | 否 | 接口调用成功的回调函数。 |
198| fail |  (data: string, code: number) => void | 否 | 接口调用失败的回调函数。data为错误信息,code为错误码。 |
199| complete | () => void | 否 | 接口调用结束的回调函数。 |
200
201fail返回错误代码:
202
203| 错误码 | 说明 |
204| -------- | -------- |
205| 601 | 获取定位权限失败,失败原因:用户拒绝。 |
206| 602 | 权限未声明。 |
207| 800 | 超时,失败原因:网络状况不佳或GNSS不可用。 |
208| 801 | 系统位置开关未打开。 |
209| 802 | 该次调用结果未返回前接口又被重新调用,该次调用失败返回错误码。 |
210
211## GeolocationResponse<sup>(deprecated)</sup>
212
213位置信息,包含经度、纬度、定位精度等信息。
214
215> **说明:**<br/>
216> 从API version 9开始废弃,建议使用[geoLocationManager.Location](js-apis-geoLocationManager.md#location)替代。
217
218**系统能力**:SystemCapability.Location.Location.Lite
219
220| 名称 | 类型 | 可读 | 可写 | 说明 |
221| -------- | -------- | -------- | -------- | -------- |
222| longitude | number | 是 | 否 | 设备位置信息:经度。 |
223| latitude | number | 是 | 否 | 设备位置信息:纬度。 |
224| altitude | number | 是 | 否 | 设备位置信息:海拔。 |
225| accuracy | number | 是 | 否 | 设备位置信息:精确度。 |
226| time | number | 是 | 否 | 设备位置信息:时间。 |
227
228## GetLocationTypeOption<sup>(deprecated)</sup>
229
230查询定位类型接口的入参,用于存放回调函数,在查询成功或者失败时接收查询结果。
231
232> **说明:**<br/>
233> 从API version 9开始废弃。
234
235**系统能力**:SystemCapability.Location.Location.Lite
236
237| 名称 | 类型 | 必填 | 说明 |
238| -------- | -------- | -------- | -------- |
239| success | (data: [GetLocationTypeResponse](#getlocationtyperesponsedeprecated)) => void | 否 | 接口调用成功的回调函数。 |
240| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 |
241| complete | () => void | 否 | 接口调用结束的回调函数。 |
242
243## GetLocationTypeResponse<sup>(deprecated)</sup>
244
245当前设备支持的定位类型列表
246
247> **说明:**<br/>
248> 从API version 9开始废弃。
249
250**系统能力**:SystemCapability.Location.Location.Lite
251
252| 名称 | 类型 | 可读 | 可写 | 说明 |
253| -------- | -------- | -------- | -------- | -------- |
254| types | Array&lt;string&gt; | 是 | 否 | 可选的定位类型['gps',&nbsp;'network']。 |
255
256## SubscribeLocationOption<sup>(deprecated)</sup>
257
258持续定位请求的配置参数。
259
260> **说明:**<br/>
261> 从API version 9开始废弃,建议使用[geoLocationManager.CurrentLocationRequest](js-apis-geoLocationManager.md#locationrequest)替代。
262
263**需要权限**:ohos.permission.LOCATION
264
265**系统能力**:SystemCapability.Location.Location.Lite
266
267| 名称 | 类型 | 必填 | 说明 |
268| -------- | -------- | -------- | -------- |
269| coordType | string | 否 | 坐标系的类型,可通过getSupportedCoordTypes获取可选值,默认值为wgs84。 |
270| success | (data: [GeolocationResponse](#geolocationresponsedeprecated)) => void | 是 | 位置信息发生变化的回调函数。 |
271| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 |
272
273fail返回错误代码:
274
275| 错误码 | 说明 |
276| -------- | -------- |
277| 601 | 获取定位权限失败,失败原因:用户拒绝。 |
278| 602 | 权限未声明。 |
279| 801 | 系统位置开关未打开。 |
280