0

我使用 ol3-google-maps 0.4 已经有一段时间了,但现在不得不将其升级到 0.10(或更高版本)。所以我将我的 ol3gm.js (0.4) 的内容替换为最新的 (0.13)。使用 0.4,我的应用程序运行良好,但一旦我切换到 0.13,就会得到“this.setMap 不是函数错误”。

使用 Openlayers 3.18.1

有人可以让我知道两者之间的区别以及如何解决此问题。

4

2 回答 2

1

从v0.6 开始, ol3 -google-maps 与 OpenLayers 一起发布。您不需要从那里单独加载 OpenLayers 库。

另外,请注意,对于每个版本,使用的 OpenLayers 版本可能不同。如果你想使用 OpenLayers 3.18.1,那么你应该使用ol3-google-maps v0.11.0

于 2017-04-12T12:21:23.630 回答
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();
            }
        }
    }
于 2017-09-15T10:02:59.723 回答