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 を使用しています - 失敗のパターンはありません。

失敗したプラグインは、動作しているプラ​​グインと同じバージョンです。

どこが失敗したのかわからないので、これは私にとって髪の毛を引っ張るイベントになりつつあります。

編集:

明確にするために、すべてのブラウザーとすべての OS で動作していますが、常にではなく、一貫性もありません...

機能している場合と機能していない場合とで、javascript または kml に変更はありません。

kml は有効なドキュメントです

すべてのブラウザが、同じプラグイン バージョンを使用していると報告しています

4

1 に答える 1

0

Fraser からのコメントは、この質問が未解決のままであることを思い出させました...

サーバー上の KML データが更新されるたびに再生成される一意の ID を追加することで、この問題を解決しました。

これにより GE キャッシュが無効になるようで、プラグインに読み込まれるデータの欠落や古いデータの問題はなくなりました。

于 2010-07-02T00:00:23.873 に答える