HarmonyOS 根据当前地理位置自动获取当前所属省份/城市的demo?

如题:HarmonyOS 根据当前地理位置自动获取当前所属省份/城市的demo?

阅读 651
1 个回答

使用getAddressesFromLocation接口调用逆地理编码服务,将坐标转换为地理描述,请参考下述,请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/geocode-guidelines-V5

demo:

//1.导入geoLocationManager模块,所有与(逆)地理编码转化能力相关的功能API,都是通过该模块提供的。
import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";

@Entry
@Component
struct Index {

  build() {
    Column() {

      Row() {
        Button('地理编码转化')
          .onClick(() => {
            //2.查询geoCoder服务是否可用。
            //调用isGeoServiceAvailable查询geoCoder服务是否可用,如果服务可用再继续进行步骤3。
            try {
              let isAvailable = geoLocationManager.isGeocoderAvailable();
            } catch (err) {
              console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
            }

            //3.获取转化结果。
            //调用getAddressesFromLocation,坐标转化地理位置信息。
            let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
            try {
              geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
                if (err) {
                  console.log('getAddressesFromLocation err: ' + JSON.stringify(err));
                } else {
                  console.log('getAddressesFromLocation data: ' + JSON.stringify(data));
                }
              });
            } catch (err) {
              console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
            }

            //调用getAddressesFromLocationName位置描述转化坐标。
            let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
            try {
              geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
                if (err) {
                  console.log('getAddressesFromLocationName err: ' + JSON.stringify(err));
                } else {
                  console.log('getAddressesFromLocationName data: ' + JSON.stringify(data));
                }
              });
            } catch (err) {
              console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
            }
          })
      }
      .width('100%')
      .justifyContent(FlexAlign.Center)

    }
    .width('100%')
    .height('100%')
    .alignItems(HorizontalAlign.Center)
    .justifyContent(FlexAlign.Center)

  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进