HarmonyOS 鸿蒙Next 根据经纬度进行逆地理编码查询报错 BussinessError 3301300 Reverse geocoding query failed

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 根据经纬度进行逆地理编码查询报错 BussinessError 3301300 Reverse geocoding query failed 无sim卡,只有wifi网络

代码如下:

const has = Utils.hasPermission(["ohos.permission.LOCATION"])
if (has) {

  const result = await geoLocationManager.getCurrentLocation()
  //获取到的位置信息:
  //3x.xxxxxxxxx
  //1xx.xxxxxxxxxx
  Log.info(`经纬度信息:${JSON.stringify(result)}`)

  //定义需要输入的请求参数
  let reverseGeocodeRequest: geoLocationManager.ReverseGeoCodeRequest = {
    'locale': 'zh',
    "latitude": result.altitude,
    "longitude": result.longitude,
    "maxItems": 1
  };
  try {
    const result = geoLocationManager.isGeocoderAvailable()
    //这里是true说明服务是可用的
    const address = await geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest)

    Log.info(`地址信息:${JSON.stringify(address)}`)

  } catch (err) {

    Log.error("errCode:" + JSON.stringify(err));
    //BussinessError 3301300: Reverse geocoding query failed.
  }
}

更多关于HarmonyOS 鸿蒙Next 根据经纬度进行逆地理编码查询报错 BussinessError 3301300 Reverse geocoding query failed的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

确认下是否有配置权限module.json5中权限是否配置

// xxx.ets
import { abilityAccessCtrl, common, Permissions } from '@kit.AbilityKit';
import { geoLocationManager } from '@kit.LocationKit';

@Entry
@Component
struct Index {
  @State localText: string = '当前位置'
  permissions: Array<Permissions> = ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'];

  getLocal() {
    const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
    let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
    // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
    atManager.requestPermissionsFromUser(context, this.permissions).then((data) => {
      let grantStatus: Array<number> = data.authResults;
      let length: number = grantStatus.length;
      for (let i = 0; i < length; i++) {
        if (grantStatus[i] === 0) {
          // 用户授权,可以继续访问目标操作
          const requestInfo: geoLocationManager.LocationRequest = {
            'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
            'scenario': geoLocationManager.LocationRequestScenario.UNSET,
            'timeInterval': 1,
            'distanceInterval': 0,
            'maxAccuracy': 0
          };
          geoLocationManager.getCurrentLocation(requestInfo)
            .then((location: geoLocationManager.Location) => {
              let reverseGeocodeRequest: geoLocationManager.ReverseGeoCodeRequest = location;
              try {
                geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
                  console.log('getAddressesFromLocation: ' + JSON.stringify(data));
                  this.localText = data[0].placeName + ''
                })
                  .catch((error: number) => {
                    console.error('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
                  });
              } catch (err) {
                console.error("errCode:");
              }
            })
            .catch((err: Error) => {
              console.error(`Failed to get current location. Code is , message is ${err.message}`);
            });
        } else {
          // 用户拒绝授权
          return;
        }
      }
      // 授权成功
    }).catch((err: Error) => {
      console.error(`Failed to request permissions from user. Code is , message is ${err.message}`);
    })
  }

  build() {
    Column() {
      Button(this.localText).onClick(() => {
        this.getLocal();
      })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next 根据经纬度进行逆地理编码查询报错 BussinessError 3301300 Reverse geocoding query failed的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS鸿蒙Next系统中根据经纬度进行逆地理编码查询报错BussinessError 3301300(Reverse geocoding query failed)的问题,可能的原因及解决方案如下:

  1. 服务不可用:检查当前设备是否连接至网络,且网络服务正常。逆地理编码依赖于在线地图服务,网络不稳定或未连接将导致查询失败。

  2. API权限问题:确保应用已正确申请并获得了使用地理位置相关API的权限。在鸿蒙系统中,这通常涉及位置信息权限和互联网访问权限。

  3. API使用错误:检查逆地理编码API的调用参数是否正确,包括经纬度的格式和范围。错误的参数格式或超出合理范围的经纬度值可能导致查询失败。

  4. 服务限制:某些地理位置服务可能对查询频率、次数或特定区域有限制。确认是否触发了这些限制条件。

  5. 系统或API版本问题:确保鸿蒙系统版本和使用的地图服务API版本兼容。不匹配的版本可能导致功能异常。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部