JS引用高德地图报错: AMap is not defined

在学习WebGIS开发时遇到AMapisnotdefined的错误,通过两种方法解决了问题:1)在实例化AMap对象前添加window;2)将高德地图密钥资源代码移动到body模块中。问题的最新更新显示,网络不稳定也可能导致此类错误,刷新页面可以暂时解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所遇问题

在学习 WebGIS 开发的过程中,从 “基于经纬度绘制点” 章节开始,就出现报错:AMap is not defined

检查过代码,跟之前 “地图参数” 中的一致,也与老师写的一致,不清楚原因是什么。看文章一中说是因为 没有找到AMap对象
经搜索相关问题解决办法,尝试后记录下两个有效的解决办法(对我而言)。

文章参考见引用,感谢网友的分享。

解决办法

方法一

在new 实例化对象AMap前面添加 window

var marker = new AMap.Marker({})   //报错

var marker = new window.AMap.Marker({}) //可正常运行

方法二

我没看懂第二篇文章中作者说的, 但是将引入高德密钥资源那一块代码从 head 模块移入 body 模块中, 便可解决报错。

<body>
	<script type="text/javascript">
		window._AMapSecurityConfig = {
			securityJsCode: '「您申请的安全密钥」',
		}
	</script>
	<script type="text/javascript"
		src="https://webapi.amap.com/maps?v=2.0&key=您申请的key值&plugin=AMap.Geocoder"></script>
</body>		

最新更新

请教大佬,Ta帮我检查后发现,代码本身没有问题,是由于网络不稳定才出现这个问题。
经其提示后,我发现确实是这样。最近办公室网很差,一旦出现 “AMap is not defined” 的问题我就会多刷新两下网页,然后Bug提示就消失了。

参考文章

文章一
文章二

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值