谷歌地球:ERR_CREATE_PLUGIN

Google Earth: ERR_CREATE_PLUGIN

本文关键字:CREATE PLUGIN ERR 谷歌地球      更新时间:2023-09-26

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

现在对于我的代码,我认为我的代码是典型的,按照谷歌网站上的教程。主要区别在于我不在页面加载时调用它。我有一个引导选项卡分隔符,它作为另一个操作的回调加载。然后加载地图。通过调试下面的代码,我知道调用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

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

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

。但您需要等到 Google 地球 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" });