google-maps - OpenLayers 2.13.1 与谷歌地图

标签 google-maps openlayers

当我从 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 问题线程中,有人做了补丁修复,但我找不到直接下载的文件,所以我不得不手动将修复应用到我的项目中。为了避免其他人这样做,我将在此处放置一个包含修复程序的缩小版本的链接。

下载:OpenLayers 2.13.1 with google fix

关于google-maps - OpenLayers 2.13.1 与谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32698848/

相关文章:

openlayers - 如何根据互联网连接可用性切换基础层

javascript - 如何在 for 循环之外访问地理编码坐标?

java - 谷歌地图设置为免费驾驶模式

flutter - 如何从 Lat Long 值中获取地址并显示到文本字段中

javascript - map 左下角的 OpenLayers 静态归因

javascript - 将格式化字符串转换为纬度或经度

css - 如何使用 Css 在 map 中创建 'blurred area'?

Android 从 map v2 中删除折线

javascript - JSON Stringify 删除 Google Place 对象中的某些属性

javascript - 如何从 openlayers 6 中 map 的 postcompose 事件获取 Canvas