HarmonyOS鸿蒙Next中geoLocationManager.getAddressesFromLocation接口能否获得中文描述的位置信息

HarmonyOS鸿蒙Next中geoLocationManager.getAddressesFromLocation接口能否获得中文描述的位置信息 使用geoLocationManager.getAddressesFromLocation接口获取位置信息,得到的省份和城市是中文拼音/英文描述,希望获得中文描述的位置信息,例如这里希望获得的是“广东省”和“深圳市”,而不是“Guangdong”和“Shenzhen”

测试代码如下:

import common from "@ohos.app.ability.common"
import geoLocationManager from "@ohos.geoLocationManager"
import abilityAccessCtrl, { Permissions } from "@ohos.abilityAccessCtrl"

@Preview
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  build() {
    Column() {
      Button("点击").onClick(() => {

        // 待获取的权限清单
        let permissionList: Array<Permissions> = [
          "ohos.permission.APPROXIMATELY_LOCATION",
          "ohos.permission.LOCATION"
        ];
        let context = getContext(this) as common.UIAbilityContext;
        let atManager = abilityAccessCtrl.createAtManager();

        // 申请权限
        console.log("----> 尝试获取权限,权限清单为: " + permissionList.toString());
        return atManager.requestPermissionsFromUser(context, permissionList).then((requestResult) => {
          let authResultSuccess: boolean = true;
          requestResult.authResults.forEach((element, index) => {
            if (element) {
              console.error("----> 获取" + requestResult.permissions[index] + "权限失败");
              authResultSuccess = false;
            }
          })
          if (!authResultSuccess) {
            return Promise.reject({ code: "-1", message: "获取权限失败" });
          }
          console.log("----> 获取权限成功");
        }).then(()=>{
          let coordinate: geoLocationManager.ReverseGeoCodeRequest = {
            "longitude": 113.9,
            "latitude": 22.5,
            "maxItems": 1
          };
          return geoLocationManager.getAddressesFromLocation(coordinate)
        }).then((address) => {
          console.log("----> address: " + JSON.stringify(address));
          let city: string = address[0].locality;
          console.log("----> city: " + city);
        })
      })
    }.width("100%").height("100%")
  }
}

更多关于HarmonyOS鸿蒙Next中geoLocationManager.getAddressesFromLocation接口能否获得中文描述的位置信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

设置geoLocationManager.getAddressesFromLocation接口中的请求参数ReverseGeoCodeRequest中的locale,指定位置描述信息的语言,“zh”代表中文,“en”代表英文。默认值从设置中的“语言和地区”获取。

请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-geolocationmanager-V5#ZH-CN_TOPIC_0000001847209628__reversegeocoderequest

更多关于HarmonyOS鸿蒙Next中geoLocationManager.getAddressesFromLocation接口能否获得中文描述的位置信息的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,geoLocationManager.getAddressesFromLocation接口可以获取中文描述的位置信息。该接口通过传入的经纬度坐标,返回一个包含地址信息的列表。返回的地址信息会根据设备或应用的语言设置自动适配,若设备或应用的语言设置为中文,则返回的地址信息将为中文描述。开发者无需额外配置语言参数,系统会根据当前环境自动处理语言适配。

在HarmonyOS鸿蒙Next中,geoLocationManager.getAddressesFromLocation接口可以通过设置Locale参数来获取中文描述的位置信息。默认情况下,接口会根据系统语言返回地址信息。若需明确获取中文地址,可在请求时指定Locale.CHINALocale.CHINESE,以确保返回的地址信息为中文格式。

回到顶部