地理编码
====

#### 场景介绍

提供正地理编码、逆地理编码的能力：

*   正地理编码：根据地址获取地点的经纬度。
    
*   逆地理编码：获取经纬度对应的地点信息。
    

#### 接口说明

以下是地理编码相关接口，主要由[site](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site)命名空间下的方法提供，更多接口及使用方法请参见[接口文档](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site)。

| 接口名 | 描述 |
| :-- | :-- |
| [geocode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocode)(geocodeParams: [GeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocodeparams)): Promise<[GeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocoderesult)\> | 正地理编码。 |
| [geocode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocode-1)(context: [common.Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-context), geocodeParams: [GeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocodeparams)): Promise<[GeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocoderesult)\> | 正地理编码。支持上传Context上下文。 |
| [reverseGeocode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocode)(reverseGeocodeParams: [ReverseGeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocodeparams)): Promise<[ReverseGeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocoderesult)\> | 逆地理编码。 |
| [reverseGeocode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocode-1)(context: [common.Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-context), reverseGeocodeParams: [ReverseGeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocodeparams)): Promise<[ReverseGeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocoderesult)\> | 逆地理编码。支持上传Context上下文。 |
| [GeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocodeparams) | 正地理编码的参数。 |
| [GeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#geocoderesult) | 正地理编码的结果。 |
| [ReverseGeocodeParams](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocodeparams) | 逆地理编码的参数。 |
| [ReverseGeocodeResult](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/map-site#reversegeocoderesult) | 逆地理编码的结果。 |

#### 开发步骤

导入相关模块。

import { site } from '@kit.MapKit';
import { BusinessError } from '@kit.BasicServicesKit';

#### \[h2\]正地理编码

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2d/v3/_st845QjRNuw8jfigEB8cw/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073627Z&HW-CC-Expire=86400&HW-CC-Sign=7C21764EAC7995B444599746ADE8E5D4D0AF689CB0084F908ECD85C8364CF523)

根据地址获取地点的空间坐标，如经纬度，最多返回10条记录。

let params: site.GeocodeParams = {
  // 地址信息
  query: 'Piazzale Dante, 41, 55049 Viareggio',
  language: 'en'
};
try {
  // 调用正地理编码接口进行地址查询
  const result = await site.geocode(params);
  console.info(\`Succeeded in geocoding. result is ${JSON.stringify(result)}\`);
} catch (error) {
  const err: BusinessError = error as BusinessError;
  console.error(\`Failed in geocoding. Code is ${err.code}, message is ${err.message}\`);
}

#### \[h2\]逆地理编码

let params: site.ReverseGeocodeParams = {
  // 位置经纬度
  location: {
    latitude: 31.984410259206815,
    longitude: 118.76625379397866
  },
  language: 'en',
  radius: 0,
  isExtension: true,
  isNearbyAoi: true
};
try {
  // 调用逆地理编码接口进行坐标地址查询
  const result = await site.reverseGeocode(params);
  console.info(\`Succeeded in reversing. result is ${JSON.stringify(result)}\`);
} catch (error) {
  const err: BusinessError = error as BusinessError;
  console.error(\`Failed in reversing. Code is ${err.code}, message is ${err.message}\`);
}