0

我在下面的另一篇文章中为我回答了一个代码。但是,此后我遇到了一个无法轻易解决的新问题。我添加了额外的 LoadKML 函数,例如函数 LoadKML1()、函数 LoadKML2()。问题是现在我需要单击 killKML 按钮以清除 LoadKML1,然后才能单击 LoadKML2。我希望单击 LoadKML1 以加载 KML,如果再次单击 LoadKML1 以运行 killKML 代码。本质上基本上是一个开和关按钮。

任何帮助表示赞赏。

var kmlLoaded = false;

function LoadKML() {
    alert('Kill KML');
        if (kmlLoaded) {
        return
            killKML();
        }else{
            alert('Creating KML');
            var nwlink = "http://kml-samples.googlecode.com/svn/trunk/kml/NetworkLink/placemark.kml"
            createNetworkLink(nwlink);
            kmlLoaded=true;
        }
}

function killKML(source) {
    ge.getGlobe().getFeatures().removeChild(networkLink);
4

1 回答 1

0

您可以更改代码并在 kmlLoaded 检查中调用 killKML() ,如下所示:

function LoadKML() {
    if (kmlLoaded) {
        //return
        killKML();
    }else{
        var newlink = "http://www.something.com/test.kml";
        createNetworkLink(newlink);
        kmlLoaded=true;
    }
}
于 2013-11-02T17:25:53.303 回答