• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# (逆)地理编码转化
2
3
4## 场景介绍
5
6使用坐标描述一个位置,非常准确,但是并不直观,面向用户表达并不友好。系统向开发者提供了以下两种转化能力。
7
8- 地理编码转化:将地理描述转化为具体坐标。
9
10- 逆地理编码转化能力:将坐标转化为地理描述。
11
12其中地理编码包含多个属性来描述位置,包括国家、行政区划、街道、门牌号、地址描述等等,这样的信息更便于用户理解。
13
14
15## 接口说明
16
17进行坐标和地理编码信息的相互转化,所使用的接口说明如下。
18
19  **表1** 地理编码转化能力和逆地理编码转化能力的API功能介绍
20
21| 接口名 | 功能描述 |
22| -------- | -------- |
23| isGeoServiceAvailable(callback: AsyncCallback<boolean>) : void | 判断(逆)地理编码服务状态,使用callback回调异步返回结果。 |
24| isGeoServiceAvailable() : Promise<boolean> | 判断(逆)地理编码服务状态,使用Promise方式异步返回结果。 |
25| getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void | 调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。 |
26| getAddressesFromLocation(request: ReverseGeoCodeRequest) : Promise<Array<GeoAddress>>; | 调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。 |
27| getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>) : void | 调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。 |
28| getAddressesFromLocationName(request: GeoCodeRequest) : Promise<Array<GeoAddress>> | 调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。 |
29
30
31## 开发步骤
32
33> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
34> GeoConvert需要访问后端服务,请确保设备联网,以进行信息获取。
35
361. 导入geolocation模块,所有与(逆)地理编码转化能力相关的功能API,都是通过该模块提供的。
37
38   ```
39   import geolocation from '@ohos.geolocation';
40   ```
41
422. 获取转化结果。
43   - 调用getAddressesFromLocation,坐标转化地理位置信息。
44
45      ```
46      var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
47      geolocation.getAddressesFromLocation(reverseGeocodeRequest, (data) => {
48          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
49      });
50      ```
51
52      参考接口API说明[位置服务](../reference/apis/js-apis-geolocation.md),应用可以获得与此坐标匹配的GeoAddress列表,应用可以根据实际使用需求,读取相应的参数数据。
53   - 调用getAddressesFromLocationName位置描述转化坐标。
54
55      ```
56      var geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
57      geolocation.getAddressesFromLocationName(geocodeRequest, (data) => {
58          console.log('getAddressesFromLocationName: ' + JSON.stringify(data));
59      });
60      ```
61
62      参考接口API说明[位置服务](../reference/apis/js-apis-geolocation.md),应用可以获得与位置描述相匹配的GeoAddress列表,其中包含对应的坐标数据,请参考API使用。
63
64      如果需要查询的位置描述可能出现多地重名的请求,可以设置GeoCodeRequest,通过设置一个经纬度范围,以高效地获取期望的准确结果。
65