使用Google地图的OpenLayers 2.13.1

Wou*_*ick 4 google-maps openlayers

当我从OpenLayers 2.12切换到2.13.1时,所有Google Maps图层都停止工作.当我使用图层切换器时,地图区域变为白色.

我在浏览器的开发控制台中看不到任何错误消息,并且所有文件都已成功加载.

我正在创建这样的图层:

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 });
Run Code Online (Sandbox Code Playgroud)

其他层(OSM,WMS)工作正常.

在我写这篇文章时,我发现OpenLayers的例子也不能正常工作.

http://dev.openlayers.org/examples/google.html

可能是谷歌做出了重大改变吗?有没有其他人有同样的问题,有没有人知道解决方案?

备注:我看过OpenLayers3,但它的API非常不同,我认为我们永远无法将所有代码移植到那里.我们无法说服我们的客户为重写所有的映射内容来使用OL3付费,所以我想这个项目永远停留在2.x分支......

Mar*_* P. 5

我遇到了和你一样的问题.在包含来自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.对我来说最有效的是与您相同的Openlayers版本3.20.

有关该主题的更多信息:https: //developers.google.com/maps/documentation/javascript/versions

稍后编辑:正如评论中提到的,此修复不再有效.在github问题线程中有人做了补丁修复,但我找不到直接下载的文件,所以我不得不手动将修复程序应用到我的项目中.为了避免其他人这样做,我将在这里添加一个包含修复程序的缩小版本的链接.

下载:使用谷歌修复的OpenLayers 2.13.1

  • 请注意,v3.20是**冻结**版本,这意味着在下一个"实验"版本推出的3个月内,它将"退役".有人应该在问题跟踪器上提出问题(如果已经没有问题),那么在问题发生之前你的问题就会得到解决. (3认同)