带有 Google 地图的 OpenLayers 2.13.1
OpenLayers 2.13.1 with Google maps
当我从 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
难道是Google做了一个突破性的改动?
有没有人遇到同样的问题,有谁知道解决方案吗?
评论:
我看过 OpenLayers3,但它的 API 是如此不同,我认为我们永远无法将所有代码移植到它。我们无法说服我们的客户支付重写所有映射内容以使用 OL3 的费用,所以我猜这个项目永远停留在 2.x 分支上......
我遇到了和你一样的问题。
在包含来自 Google 的 js 文件的 link 中,您必须告诉它在 9 月 15 日的重大更改之前向您发送旧版本
示例:
正常 link: <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false"></script>
解决方案link:<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 问题线程中,有人修复了补丁,但我找不到可以直接下载的文件,所以我不得不手动将修复应用到我的项目中。为了避免其他人做同样的事情,我将在此处放置一个 link 包含修复程序的缩小版本。
接受的答案现在不再有效,因为正如@geocodezip 提到的,v3.20 现已被 Google 淘汰。为了使 OpenLayers 2.13.x 与 Google 地图 API 的当前版本一起工作,您必须按照 this comment 中指定的方式修补 OpenLayers.js 文件OpenLayers 问题 #1450。
当我从 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
难道是Google做了一个突破性的改动? 有没有人遇到同样的问题,有谁知道解决方案吗?
评论: 我看过 OpenLayers3,但它的 API 是如此不同,我认为我们永远无法将所有代码移植到它。我们无法说服我们的客户支付重写所有映射内容以使用 OL3 的费用,所以我猜这个项目永远停留在 2.x 分支上......
我遇到了和你一样的问题。 在包含来自 Google 的 js 文件的 link 中,您必须告诉它在 9 月 15 日的重大更改之前向您发送旧版本
示例:
正常 link: <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false"></script>
解决方案link:<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 问题线程中,有人修复了补丁,但我找不到可以直接下载的文件,所以我不得不手动将修复应用到我的项目中。为了避免其他人做同样的事情,我将在此处放置一个 link 包含修复程序的缩小版本。
接受的答案现在不再有效,因为正如@geocodezip 提到的,v3.20 现已被 Google 淘汰。为了使 OpenLayers 2.13.x 与 Google 地图 API 的当前版本一起工作,您必须按照 this comment 中指定的方式修补 OpenLayers.js 文件OpenLayers 问题 #1450。