0

我通过ADD KMZ按钮的 onclick 上的网络链接添加 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。

然后,我有一个REMOVE按钮,单击它会从 ge-plugin 的实例中删除上面添加的 KMZ 的网络链接。以下是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 回答