0

次のように、[ KMZを追加] ボタンのオンクリックでネットワーク リンクを介して KMZ ファイルを追加しています。

var nlFile=null;
function addKMZData(){
    nlFile=ge.createNetworkLink('exampleKMLNL1');
    nlFile.setVisibility(true);
    var link = ge.createLink(" exampleLink1 ");
    link.setHref('http://localhost:8080/KMZs/example.kmz');
    nlFile.setLink(link);
    nlFile.setFlyToView(true);
    nlFile.setName('kmz');
    ge.getGlobe().getFeatures().appendChild(nlFile);
}

ここで取得した「example.kmz」ファイルには線ストリングの目印が含まれており、インストールされているプラ​​グインのバージョンは 6.1.0.5001 です。

次に、 [削除] ボタンをクリックすると、上記で追加したKMZのネットワーク リンクが ge-plugin のインスタンスから削除されます。以下は、REMOVEボタンの onclick 関数です。

function clearKMZData(){
    ge.getFeatures().removeChild(ge.getElementById('exampleKMLNL1'));
    nlFile=null;
}

これらの機能は初めてうまく機能します。ただし、追加された KMZ ネットワーク リンクを削除した後に addKMZData() 関数を使用して同じ KMZ ファイルを追加しようとすると、「NPObject のメソッドの呼び出しでエラーが発生しました!」というエラーが表示されます。add 関数の 1 行目。ネットワーク リンクを介して KMZ/KML データを追加および削除するこの方法は正しいですか? 上記の 2 つの JavaScript 関数で何か不足していますか?

よろしく、シヴァ

4

1 に答える 1

0

var nlFile がグローバルである限り

最初の関数で、これを変更します

      nlFile=ge.createNetworkLink('exampleKMLNL1');

これに

      nlFile=ge.createNetworkLink('');

これを変更します

      function clearKMZData(){
          ge.getFeatures().removeChild(ge.getElementById('exampleKMLNL1'));
          nlFile=null;
      }

これに

      function clearKMZData(){
          ge.getFeatures().removeChild(nlFile);
      }
于 2012-04-04T05:12:27.190 に答える