2

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

现在对于我的代码,我认为我的代码按照谷歌网站上的教程是典型的。主要区别在于我不在页面加载时调用它。我有一个引导选项卡 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

4

1 回答 1

1

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

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

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

google.earth.createInstance

通常,这将通过文档正文setOnLoadCallbackonLoad处理程序来完成,例如

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" });

于 2013-12-16T07:27:54.973 回答