我一直在使用ol3-google-maps 0.4很长一段时间但现在不得不将其升级到0.10(或更高)。所以我将我的ol3gm.js(0.4)的内容替换为最新的(0.13)。使用0.4我的应用程序工作正常,但一旦我切换到0.13 get" this.setMap不是函数错误"。
使用Openlayers 3.18.1
有人可以让我知道两者之间的区别以及如何解决这个问题。
答案 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();
}
}
}