Google地球:ERR_CREATE_PLUGIN

时间:2013-09-11 09:21:41

标签: javascript ruby-on-rails google-earth google-earth-plugin

我在使用Google Earth API时遇到错误。错误消息是:ERR_CREATE_PLUGIN或在浏览器中google earth显示一条消息,指出插件出错。我在Chrome / Firefox / IE中尝试了它,并且具有相同的问题或完整的空白,谷歌地球界面应该是。

现在我的代码,我认为我的代码是典型的谷歌网站上的教程。主要区别在于我没有在页面加载时调用它。我有一个bootstrap tab divdier,作为回调加载到另一个动作。然后加载地图。通过调试以下代码,我知道调用google.earth.createInstance会导致对failureCB的调用,但错误信息根本不是很有用

function initCB(instance) {
        var ge = instance;
        var lookAt = ge.createLookAt('');
        lookAt.setLatitude(lat);
        lookAt.setLongitude(lng);
}
function failureCB(e, m) {
    alert(e);
}
google.earth.createInstance('googleEarthTool', initCB, failureCB);

关于我应该去哪里的任何想法?网站位于:http://beta.snowgeek.org/tools/trip-planning

1 个答案:

答案 0 :(得分:1)

ERR_CREATE_PLUGIN问题几乎肯定与您加载插件的方式有关。你说......

  

“主要区别在于我不会在页面加载时调用它。”

...但是您需要等到Google Earth Api完成加载才能调用

google.earth.createInstance

通常,这可以通过setOnLoadCallback或通过文档正文的onLoad处理程序完成,例如。

function init() {
  google.earth.createInstance('googleEarthTool', initCB, failureCB);
}

...然后

google.setOnLoadCallback(init);

<body onload="init()">

修改

从查看代码我看不到你打电话

ge.getWindow().setVisibility(true);

要实际显示插件 - 你需要做一些像

这样的事情
this.displayGoogleEarth = function(lat, lng) {
        function initCB(instance) {
           var ge = instance;
           ge.getWindow().setVisibility(true); //actually display the plugin

此外,加载api的方式有误。

google.load("earth", "1", { "other_params" : "sensor={true_or_false}" });

应该是

google.load("earth", "1", { "other_params" : "sensor=true" });

google.load("earth", "1", { "other_params" : "sensor=false" });