0

代码:

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

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

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

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

这对我来说是一件令人毛骨悚然的事情,因为我看不出失败在哪里。

编辑:

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

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

kml 是有效的文件

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

4

1 回答 1

0

弗雷泽的评论提醒我们这个问题是悬而未决的......

我们通过附加一个唯一 ID 解决了这个问题,该 ID 在服务器上的 KML 数据更新时重新生成。

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

于 2010-07-02T00:00:23.873 回答