将 ol3-google-maps 0.4 升级到 0.13 导致 this.setMap 不是函数错误
Upgrading ol3-google-maps 0.4 to 0.13 resulting in this.setMap is not a function error
我使用 ol3-google-maps 0.4 已经有一段时间了,但现在不得不将其升级到 0.10(或更高版本)。所以我将 ol3gm.js (0.4) 的内容替换为最新的 (0.13)。使用 0.4,我的应用程序运行良好,但一旦我切换到 0.13,就会得到 "this.setMap is not a function error"。
使用 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 一起发布。
因为我使用的是 ol3gm v0.4,其中没有包含 Openlayers,所以我在应用程序初始化时加载了 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();
}
}
}
我使用 ol3-google-maps 0.4 已经有一段时间了,但现在不得不将其升级到 0.10(或更高版本)。所以我将 ol3gm.js (0.4) 的内容替换为最新的 (0.13)。使用 0.4,我的应用程序运行良好,但一旦我切换到 0.13,就会得到 "this.setMap is not a function error"。
使用 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 一起发布。
因为我使用的是 ol3gm v0.4,其中没有包含 Openlayers,所以我在应用程序初始化时加载了 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();
}
}
}