谷歌地图 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 defer
和callback=...
)。
【讨论】:
我遇到了和 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 未返回的结果