将ol3-google-maps 0.4升级到0.13导致this.setMap不是函数错误

时间:2017-04-12 10:12:27

标签: openlayers openlayers-3 ol3-google-maps

我一直在使用ol3-google-maps 0.4很长一段时间但现在不得不将其升级到0.10(或更高)。所以我将我的ol3gm.js(0.4)的内容替换为最新的(0.13)。使用0.4我的应用程序工作正常,但一旦我切换到0.13 get" this.setMap不是函数错误"。

使用Openlayers 3.18.1

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

2 个答案:

答案 0 :(得分:1)

v0.6开始,ol3-google-maps会随着OpenLayers编译而发布。您不需要单独加载OpenLayers库。

另外,请注意,对于每个版本,使用的OpenLayers版本可能会有所不同。如果您希望使用OpenLayers 3.18.1,则应使用ol3-google-maps v0.11.0

答案 1 :(得分: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();
            }
        }
    }