当我从 OpenLayers 2.12 切换到 2.13.1 时,所有 Google map 图层都停止工作。当我使用图层切换器时, map 区域会变成白色。
我在浏览器的开发控制台中没有看到任何错误消息,并且所有文件都已成功加载。
我正在创建这样的图层:
var layerGoogleMapsNormal = new OpenLayers.Layer.Google("Google Normal" , { type : google.maps.MapTypeId.ROADMAP, sphericalMercator : true });
var layerGoogleMapsPhysical = new OpenLayers.Layer.Google("Google Physical" , { type : google.maps.MapTypeId.TERRAIN, sphericalMercator : true });
其他层(OSM、WMS)工作正常。
在我写这篇文章时,我发现 OpenLayers 中的示例也不能正常工作。
http://dev.openlayers.org/examples/google.html
会不会是 Google 做出了重大改变? 有没有人有同样的问题,有没有人知道解决方法?
<子> 评论: 我看过 OpenLayers3,但它的 API 是如此不同,以至于我认为我们永远无法将所有代码移植到它。我们将无法说服我们的客户为重写所有映射内容以使用 OL3 付费,所以我猜这个项目永远停留在 2.x 分支上......
最佳答案
我和你有同样的问题。 在包含来自 Google 的 js 文件的链接中,您必须告诉它在 9 月 15 日的重大更改之前向您发送旧版本。
示例:
普通链接:<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false"></script>
解决方案链接:<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false&v=3.20"></script>
目前,最新版本是 3.22。最适合我的是 3.20,与您的 Openlayers 版本相同。
有关该主题的更多信息: https://developers.google.com/maps/documentation/javascript/versions
稍后编辑:正如评论所述,此修复不再有效。在 github 问题线程中,有人做了补丁修复,但我找不到直接下载的文件,所以我不得不手动将修复应用到我的项目中。为了避免其他人这样做,我将在此处放置一个包含修复程序的缩小版本的链接。
关于google-maps - OpenLayers 2.13.1 与谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698848/