HarmonyOS 鸿蒙Next:经纬度坐标和具体地址获取地理编码错误处理,具体地址获取地理编码报3301300错误与经纬度坐标报3301400错误
HarmonyOS 鸿蒙Next:经纬度坐标和具体地址获取地理编码错误处理,具体地址获取地理编码报3301300错误与经纬度坐标报3301400错误
不知道大家有没有遇到相关的问题?我是在电脑上开设备模拟器调试的,不知道是不是这个原因,下面是我的代码
import { geoLocationManager } from '@kit.LocationKit';
import { Permissions } from '@kit.AbilityKit';
import { AuthUtil } from '../Util/AuthUtil';
@Entry
@Component
struct Loaction_Page2 {
locationPermissions: Permissions = 'ohos.permission.LOCATION'
locationMatelyPermissions: Permissions = 'ohos.permission.APPROXIMATELY_LOCATION'
async aboutToAppear(): Promise<void> {
let permissionResult = await this.CheckPermission();
if (!permissionResult) {
//这里需要指引用户二次开启
return;
}
this.CheckGeoService()
}
LocationToAddress() {
this.CheckGeoService()
let reverseGeocodeRequest: geoLocationManager.ReverseGeoCodeRequest =
{
"locale": "zh",
"country": "CN",
"latitude": 40.02099028,
"longitude": 115.96965089,
"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:" + JSON.stringify(err));
}
}
LocationNameToAddress() {
let geocodeRequest: geoLocationManager.GeoCodeRequest = {
"description": "广东省广州市海珠区阅江西路222号(广州塔站B出口170米左右)",
"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:" + JSON.stringify(err));
}
}
build() {
Column() {
Button("具体地址得到地理编码").width(220).height(50)
.margin({ bottom: 40 })
.onClick(() => {
this.LocationNameToAddress();
})
Button("具体坐标得到地理编码").width(220).height(50)
.margin({ bottom: 40 })
.onClick(() => {
this.LocationToAddress();
})
}
.height('100%')
.width('100%')
.justifyContent(FlexAlign.Center)
}
/**
* 查询地理编码和逆地理编码是否可用
*/
private CheckGeoService(): boolean {
try {
let isAvailable = geoLocationManager.isGeocoderAvailable();
if (isAvailable) {
console.log("地理编码和逆地理编码可用")
return true;
} else {
console.log("地理编码和逆地理编码不可用")
return false;
}
} catch (err) {
console.error("errCode:" + JSON.stringify(err));
return false;
}
}
/**
* 检查定位权限是否添加
* @returns true为已经添加,false为未添加
*/
private async CheckPermission(): Promise<boolean> {
let result: boolean = true;
let locationPermissionCheck = await AuthUtil.checkPermissions(this.locationPermissions)
if (!locationPermissionCheck) {
AuthUtil.reqPermissionsFromUser(this.locationPermissions, (index: number) => {
if (index === -1) {
result = false;
}
})
}
if (!result) {
return result;
}
let locationMatelyPermissionCheck = await AuthUtil.checkPermissions(this.locationMatelyPermissions)
if (!locationMatelyPermissionCheck) {
AuthUtil.reqPermissionsFromUser(this.locationMatelyPermissions, (index: number) => {
if (index === -1) {
result = false;
}
})
}
return result;
}
}
更多关于HarmonyOS 鸿蒙Next:经纬度坐标和具体地址获取地理编码错误处理,具体地址获取地理编码报3301300错误与经纬度坐标报3301400错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
windows模拟器好像只支持获取地址数据,不支持编码和逆编码
更多关于HarmonyOS 鸿蒙Next:经纬度坐标和具体地址获取地理编码错误处理,具体地址获取地理编码报3301300错误与经纬度坐标报3301400错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
应该是的了,现在没有实体机子去测试,后面试试看是不是这个问题。
针对HarmonyOS鸿蒙Next系统中,经纬度坐标和具体地址获取地理编码时遇到的3301300和3301400错误,这里提供可能的解决方案:
-
3301300错误:通常表示地址解析失败。请检查输入的具体地址信息是否完整、准确,避免存在拼写错误或格式不正确的问题。同时,确认所使用的地理编码服务API是否支持该地区的地址解析。
-
3301400错误:这个错误码一般关联于经纬度坐标解析问题。请验证输入的经纬度坐标是否在有效范围内(经度:-180至180度,纬度:-90至90度)。此外,确认API服务是否覆盖该坐标所在的地理位置,以及是否存在网络或权限问题导致服务调用失败。
-
通用检查:
- 确保应用已获得必要的地理位置权限。
- 检查网络连接状态,确保API请求能够正常发送和接收。
- 查阅鸿蒙系统的开发者文档,了解地理编码API的最新使用说明和限制条件。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,