我有一个独特的问题,即我有一个有很多有趣地方的社交网站。每个地方都有谷歌地图。今天我看到了一个问题。
当我添加带地址的新地点从谷歌api制作地图时,它不起作用。
我之前已经检查过添加的地方,但他们通常都有地图,但错误
“initMap不是函数”。
什么错了?为什么在新创建的地方从谷歌api地图不起作用?我用我的api键使用它:
<script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_API&callback=initMap"></script>
答案 0 :(得分:3)
可能来自代码中的脚本位置。确保;
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script>
在包含initMap函数的脚本块之后加载。
<script type="text/javascript">
function initMap() {
//
}
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script>
答案 1 :(得分:1)
是否有一个名为&#34; initMap&#34;的函数在你的代码?如果不是,您将收到此错误。 async属性允许浏览器在加载Maps JavaScript API时呈现您网站的其余部分。 API准备就绪后,将调用使用callback参数指定的函数。如果您希望使用不同名称的不同回调函数,那就完全没问题,但您必须相应地修改此请求URL。如果您愿意,也可以完全删除回调参数,但是您需要在代码中进行函数调用以加载地图。如果你这样做,你还需要删除异步延迟,否则你会收到一个错误,说谷歌没有定义。修改后的脚本标记为:
<script src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY"></script>
我有一个例子在这里证明:
https://jsfiddle.net/gy3yg9ma/11/
请插入您自己的API密钥以使用该示例。注意我如何调用initMap();我在我的代码中手动删除了回调参数。在调用函数加载它之前,地图不会加载。
我希望这有帮助!