【问题标题】:Google Maps API change?谷歌地图 API 变化?
【发布时间】:2015-09-01 15:15:05
【问题描述】:

我使用 google 地图、开放图层和 dojo 工具包为 Web 应用程序构建了一个地图组件。它加载了谷歌地图并绘制了数据点。直到今天凌晨,一切都运行良好,但地图突然停止加载。没有 JavaScript 错误,打开的图层和谷歌仍在初始化,数据点仍在各自的位置绘制,但地图没有加载。以下是我正在使用的资源:

<script src="//openlayers.org/api/OpenLayers.js"></script>
<script src="//maps.google.com/maps/api/js?v=3&libraries=places&sensor=false"></script>

我刚刚尝试了谷歌提供的“Hello World”示例(见下文)并注意到它有效。

https://developers.google.com/maps/documentation/javascript/tutorial

我注意到该示例需要使用 API 密钥。我尝试将我的 API 密钥放入上面使用的资源中,但无济于事。我还尝试复制他们在示例中使用的资源,但失败了,因为它导致打开层出错。

Google 是否已决定弃用此处的功能并且我需要重新构建此组件?我有什么遗漏吗?

注意:

通过从 Google 地图切换到 Open Street Maps,我暂时解决了生产中的问题。可以在这里找到https://www.beaconsinspace.com/map。这也证明问题出在加载地图上,而不是其他问题。

【问题讨论】:

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


    【解决方案1】:

    感谢@geocodezip 的回答和@benjamin 的评论,我找到了解决方案。

    发生的是 google API 更新(如@geocodezip 答案中所述)。 我的解决方案是指定 api 版本 3.20:

    <script src="//maps.google.com/maps/api/js?v=3.20&sensor=false"></script>
    

    --或--

    <script src="//maps.googleapis.com/maps/api/js?v=3.20&sensor=false"></script>
    

    【讨论】:

      【解决方案2】:

      恢复到 3.20 版对我有用:

      <script src="//maps.google.com/maps/api/js?v=3.20"></script>
      

      感谢@geocodezip 让我走上了正轨。

      【讨论】:

      • 不知道,但这不是我第一次看到 OpenLayers 和新版本的 Google 地图存在问题,这让我对诚实地使用 OpenLayers 的信心降低(至少在前端) .
      【解决方案3】:

      看起来announced in the notify groupv.exp 现在是v3.22,这意味着发布版本是v3.21,冻结版本是v3.20。

      似乎每次推出新版本的 API 时,加载磁贴时都会出现临时问题。您是否尝试过完全刷新(清除浏览器缓存)。问题可能是由于 API 片段的缓存造成的。

      你没有使用currently documented URL for the API,(maps.google.com/maps/api/js vs maps.googleapis.com/maps/api/js)这也可能与它有关。

      <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initMap">
      </script>
      

      (我不同意该示例中的async defercallback=...)。

      【讨论】:

      • 我遇到了和 John 一样的问题,我注意到 3.21 是引入 BC break 的那个。 ?v=3.20 为我工作。
      • @Benjamin 请提供您的答案,以便我接受。
      • @JohnFoley 刚刚做了,但感谢 geocodezip,因为如果没有他的回答,我不会发现版本问题。
      • 我同意 @geocodezip 值得称赞。尽管为了最快地帮助他人,我会接受直接解决问题的答案。谢谢你们俩。
      【解决方案4】:

      问题是由 OpenLayers 中的错误引起的。

      https://github.com/openlayers/openlayers/issues/1450

      通过阅读该问题,它现在似乎有了解决方案。看看吧。

      请注意,Google Maps API v3.20 将在大约三个月后停用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 2013-08-05
        • 1970-01-01
        相关资源
        最近更新 更多