我使用 ol3-google-maps 0.4 已经有一段时间了,但现在不得不将其升级到 0.10(或更高版本)。所以我将我的 ol3gm.js (0.4) 的内容替换为最新的 (0.13)。使用 0.4,我的应用程序运行良好,但一旦我切换到 0.13,就会得到“this.setMap 不是函数错误”。
使用 Openlayers 3.18.1
有人可以让我知道两者之间的区别以及如何解决此问题。
我使用 ol3-google-maps 0.4 已经有一段时间了,但现在不得不将其升级到 0.10(或更高版本)。所以我将我的 ol3gm.js (0.4) 的内容替换为最新的 (0.13)。使用 0.4,我的应用程序运行良好,但一旦我切换到 0.13,就会得到“this.setMap 不是函数错误”。
使用 Openlayers 3.18.1
有人可以让我知道两者之间的区别以及如何解决此问题。
从v0.6 开始, ol3 -google-maps 与 OpenLayers 一起发布。您不需要从那里单独加载 OpenLayers 库。
另外,请注意,对于每个版本,使用的 OpenLayers 版本可能不同。如果你想使用 OpenLayers 3.18.1,那么你应该使用ol3-google-maps v0.11.0。
正如 Alexandre 所解释的,从 v0.6 开始,ol3-google-maps 与 OpenLayers 一起发布。
由于我使用的是不包含 Openlayers 的 ol3gm v0.4,因此我在应用程序初始化时加载了 ol.js 和 Google API,一旦触发了基础层更改事件,就会在运行时加载 ol3gm.js,因此问题。使库加载顺序正确,问题得到解决。如果遇到类似问题的人可以使用下面的代码等到 olgm 可以使用。
var googleInterval = setInterval(function(){
initmapController()
}, 1000);
function initmapController() {
$("#loadingOverLay").removeClass('hide')
if (google.maps !== undefined){
if(typeof olgm !== "undefined") {
$("#loadingOverLay").addClass('hide')
clearInterval(googleInterval);
init();
}
}
}