1.解决报当前定位失败Geolocation permission denied:
可以去高德api查看:常见问题 | 高德地图API (amap.com)
图中红圈2,3,4,5,6对应Geolocation permission denied报错的原因,可对应修改。
如红圈2:用户打开定位选项即可:
2.进入定位页面偶尔报 AMap没有找到的。
1.在index.html文件中;
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.12&key=自己的key">
window.AMap = AMap;
</script>
2.在封装高德api的文件下对应调整:文章来源:https://www.toymoban.com/news/detail-524628.html
/**
* 用高德地图定位
*/
amapLocate(
complete?: (cityCode: string, cityName: string) => void,
error?: () => void
): void {
const AMap = (window as any).AMap;
const mapObj = new AMap.Map("iCenter");
mapObj.plugin("AMap.Geolocation", () => {
const geolocation = new AMap.Geolocation({
timeout: 100000, // 超过 100 秒后停止定位
});
mapObj.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(
geolocation,
"complete",
(data: {
position: { lat: number; lng: number };
addressComponent: { adcode?: string; province: string; city: string };
}) => {
const position = data.position;
const addressComponent = data.addressComponent;
this.LocationModule.SET_longitude_PERSIST(position.lng);
this.LocationModule.SET_latitude_PERSIST(position.lat);
if (complete) {
complete(
getCityCodeByAdcode(
addressComponent
? addressComponent.adcode
: LocationModule.defaultCityCode
),
addressComponent
? addressComponent.city || addressComponent.province
: LocationModule.defaultCityName // 直辖市 addressComponent.city 为空字符串,这时要取 province
);
}
}
);
AMap.event.addListener(geolocation, "error", (errorData: unknown) => {
console.error("locate >>> errorData", errorData);
this.LocationModule.SET_longitude_PERSIST(-1);
this.LocationModule.SET_latitude_PERSIST(-1);
if (error) {
error();
}
});
});
}
文章来源地址https://www.toymoban.com/news/detail-524628.html
到了这里,关于H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation permission denied 或者 偶尔报AMap没有找到的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!