“加载 KML”复选框

Load KML check box

本文关键字:复选框 KML 加载      更新时间:2023-09-26

我正在使用此示例代码,我对以下部分的作用以及它们的来源感到困惑。我不明白点击或+ file +(''red'')部分。我正在尝试将其更改为createNetworkLink并使用我自己的测试器.kml。当我更改+ file +时,它会损坏。

    var currentKmlObjects = {
      'red': null,
    };
addSampleUIHtml(
        '<h2>Toggle KML Files:</h2>' +
        '<input type="checkbox" id="kml-red-check" onclick="toggleKml(''red'');"/><label for="kml-red-check">Red Placemarks</label><br/>'
      );
     function loadKml(file) {
      var kmlUrl = 'http://earth-api-samples.googlecode.com/svn/trunk/' +
        'examples/static/' + file + '.kml';
      // fetch the KML
      google.earth.fetchKml(ge, kmlUrl, function(kmlObject) {
        // NOTE: we still have access to the 'file' variable (via JS closures)
        if (kmlObject) {
          // show it on Earth
          currentKmlObjects[file] = kmlObject;
          ge.getFeatures().appendChild(kmlObject);
        } else {
          // bad KML
          currentKmlObjects[file] = null;
"

red"只是一个例子。如果要加载的 kml 是 "mydoc.kml",则将 red 替换为 mydoc。将 http://earth-api-samples.googlecode.com/svn/trunk/"+"示例/静态/替换为文件在网络上的位置。不要触摸 +文件+。你必须有这样的东西:"http://myadress.com/file/" + 文件 + ".kml"。

看看loadkml函数的定义。

function loadKml(file) { ...

单词 file 只是一个参数,无论您传递给函数的任何内容都将在函数范围内由file表示。

如果调用loadKml("FOO")则函数内的kmlUrl等于

http://earth-api-samples.googlecode.com/svn/trunk/examples/static/FOO.kml

现在,您不显示toggleKml函数 - 但它看起来也像loadkml一样接受单个参数。它看起来像。

function toggleKml(file) { ...

因此,当您单击调用toggleKml("red");时,会将值"red"传入其中。因此,在方法范围内,单词 file 将具有值 red ,如果您调用 toggleKml("orange"); - 单词 file 将具有值 orange - 依此类推。