Google地球浏览器插件未在某些浏览器中加载KML文件

时间:2010-02-17 01:58:25

标签: javascript kml google-earth google-earth-plugin

代码:

google.load("earth", "1");

function gemap_init()
{
  google.earth.createInstance('gemap', initCB, failureCB);
}

function initCB(instance)
{
  try {
    ge = instance;
    ge.getWindow().setVisibility(true);

    console.log(ge.getPluginVersion());

    google.earth.fetchKml(ge,
      'http://example.com.au/maps/example.kml',
      function (kmlObject) {
        if (kmlObject) {
          ge.getFeatures().appendChild(kmlObject);
        }

        if (kmlObject.getAbstractView() !== null) {
          ge.getView().setAbstractView(kmlObject.getAbstractView());
        }
      }
    );
  } catch (e) {
    console.log(e);
  }
}

function failureCB(errorCode)
{
  alert(errorCode);
}

google.setOnLoadCallback(gemap_init);

出于某种原因,这在我的电脑上的每个浏览器中都有效 - 但是当我在办公室里的随机电脑和浏览器上进行测试时,它无法显示标记或从kml移动相机。

操作系统和浏览器的范围从XP到Vista,使用FF,Chrome,IE7,IE8 - 没有失败模式。

失败的插件与工作插件的版本相同。

这对我来说正在成为一个令人毛骨悚然的事件,因为我无法看到失败的地方。

编辑:

只是为了说清楚 - 它适用于所有这些浏览器和所有这些操作系统 - 但并非总是如此,而且并非始终如一......

工作和不工作之间的javascript或kml没有变化。

kml是有效的文件

所有浏览器都报告他们使用相同的插件版本

1 个答案:

答案 0 :(得分:0)

弗雷泽的评论提醒说,这个问题是开放的......

我们通过附加唯一ID来解决问题,只要更新服务器上的KML数据,就会重新生成。

这似乎破坏了GE缓存,我们不再有任何问题,在插件中加载了丢失或过时的数据。