当我从OpenLayers 2.12切换到2.13.1时,所有Google地图图层都停止工作。当我使用图层切换器时,地图区域会变为白色。
我在任何时候都没有在浏览器的开发控制台中看到任何错误消息,并且所有文件都已成功加载。
我正在创建这样的图层:
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
谷歌是否做出了重大改变? 有没有其他人有同样的问题,有没有人知道解决方案?
<子> 备注: 我看过OpenLayers3,但它的API非常不同,我认为我们无法将所有代码移植到那里。我们无法说服我们的客户支付重写所有映射资料以利用OL3,所以我猜这个项目永远停留在2.x分支...... 子> 的
答案 0 :(得分: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问题线程中有人做了补丁修复,但我找不到直接下载的文件,所以我不得不手动将修复程序应用到我的项目中。为了避免其他人这样做,我会在这里添加一个包含修复程序的缩小版本的链接。