0

私はこのサンプル コードを使用していますが、次の部分が何をするのか、どこから来たのかについて混乱しています。(\'red\')onclick またはそのいずれかの部分がわかりません+ file +createNetworkLinkこれを自分の tester.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;
4

2 に答える 2

0

関数の定義を見てください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

于 2013-12-15T23:08:52.640 に答える