谷歌地图 API 变化?

Posted

技术标签:

【中文标题】谷歌地图 API 变化?【英文标题】:Google Maps API change? 【发布时间】: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。这也证明问题出在加载地图上,而不是其他问题。

【问题讨论】:

【参考方案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 将在大约三个月后停用。

【讨论】:

以上是关于谷歌地图 API 变化?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图提供谷歌地方 API 或谷歌地图 API 未返回的结果

检查谷歌地图中的位置变化

减少谷歌地图成本计算,只能调用谷歌地图javascript api

谷歌地图显示错误 Api 项目未授权

谷歌方向 API 行程时间与实时谷歌地图不同

谷歌地图 API 方向