HarmonyOS 如何实现获取坐标后判断城市位置?

如题:HarmonyOS 如何实现获取坐标后判断城市位置?

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