尝试初始化Google地图地图时出错(代码= SCRIPT5009)

时间:2016-02-07 16:28:27

标签: javascript google-maps google-maps-api-3

我正在尝试开发一个网络移动应用,允许用户在不同的POI之间导航,但是在尝试实施Google Maps Api时我遇到了错误。

以下是感兴趣的人的代码:

<div class="col-md-4 tab-bottom">
    <div class="tab-bottom-img"><img width="380" height="380" src="http://dg-design.ch/bagel/wp-content/uploads/2016/02/1-380x380.png" class="attachment-news wp-post-image" alt="1"> </div>
    <div class="tab-bottom-content">
        <div>
            <p class="title_bottom">SED PERSPICIATIS</p>
            <p class="content_bottom"></p><p>
                Sed ut perspiciatis unde omnis iste natus error sit<br>
                voluptatem accusantium doloremque laudantium,<br>
                totam rem aperiam, eaque ipsa quae ab illo inventore<br>
                veritatis et quasi architecto beatae vitae dicta sunt<br>
                explicabo.
            </p>
            <p></p>
        </div>
    </div>
</div>
<div class="col-md-4 tab-bottom">
    <div class="tab-bottom-img"><img width="380" height="380" src="http://dg-design.ch/bagel/wp-content/uploads/2016/02/1-380x380.png" class="attachment-news wp-post-image" alt="1"> </div>
    <div class="tab-bottom-content">
        <div>
            <p class="title_bottom">SED PERSPICIATIS</p>
            <p class="content_bottom"></p><p>
                Sed ut perspiciatis unde omnis iste natus error sit<br>
                voluptatem accusantium doloremque laudantium,<br>
                totam rem aperiam, eaque ipsa quae ab illo inventore<br>
                veritatis et quasi architecto beatae vitae dicta sunt<br>
                explicabo.
            </p>
            <p></p>
        </div>
    </div>
</div>

我收到以下错误:

  

SCRIPT5009:'google'未定义

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

问题

您的initialise()函数尚未了解google对象,因为google对象仅在加载Google API脚本后才知道。

解决方案

解决此问题的最简单方法是:

  1. 在Google API脚本的initialise()标记
  2. 之后放置script功能的代码
  3. 从Google API脚本的async defer标记
  4. 中删除script

    另外:

    1. 您在}功能结束时也遗漏了initialise()

    2. 您需要一个ID为map的HTML元素才能使代码正常工作。

    3. 工作代码

      查看this Fiddle了解如何修复代码!

答案 1 :(得分:0)

您在代码中调用initialise();一次,但这可以在Google Maps JS加载之前执行。

您还可以在

中指定initialise作为回调函数
<script 
    type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&callback=initialise" async defer>

一旦Maps JS加载,这将执行initialise函数。这就是你所需要的;删除您自己的JS中的initialise();行。

PS:John的回答指出了你需要做的几件事。

  • 您需要在功能结束时关闭}
  • 您的页面需要<div id="map"></div>

PPS:加载Maps API时,您无需再指定sensor=false参数。