0

KML ファイルをダブルクリックすると、必要な処理が実行され、GE が開始され、期待どおりに実行されます。HTML ファイルに挿入すると、機能しません。次に、それをhttp://earth-api-samples.googlecode.com/svn/trunk/examples/kml-fetch-interactive.htmlに入れました が、そこからも機能しません。これは KLM https://dl.dropbox.com/u/61240296/myPoints.Kmlへのリンクです。これは基本的に、Google Sample の直接のコピーです。KML ファイルは他の KML ファイルに依存していますか? 私が気づいたことの 1 つは、道路がないため、開いているかアクティブな KML ファイルがないように見えることです。

<?xml version="1.0" encoding="UTF-8"?>

xmlns:gx="http://www.google.com/kml/ext/2.2" 

xmlns:kml="http://www.opengis.net/kml/2.2" 

xmlns:atom="http://www.w3.org/2005/Atom">

  <Camera>

     <longitude>-93.2539393007755</longitude>

     <latitude>45.5456585437059</latitude>

     <altitude>139.629438</altitude>

     <heading>-70.0</heading>

     <tilt>75</tilt>

  </Camera>

  <Placemark>

     <name>Placemark from KML file</name>

     <Point>

        <coordinates>-93.2539393007755, 45.5456585437059</coordinates>

     </Point>

  </Placemark>

  </Document>

  </kml>
4

2 に答える 2

1

KMLファイルは問題ありません。リンク先のサンプルページでも完全に機能します。問題は、サンプルページがkmlファイルを読み込んだ後にビューを変更しないことです。それもしようとはしません。

この関数を編集する

function finishFetchKml(kmlObject) {
  // check if the KML was fetched properly
  if (kmlObject) {
    // add the fetched KML to Earth
    currentKmlObject = kmlObject;
    ge.getFeatures().appendChild(currentKmlObject);
  } else {
    // wrap alerts in API callbacks and event handlers
    // in a setTimeout to prevent deadlock in some browsers
    setTimeout(function() {
      alert('Bad or null KML.');
    }, 0);
  }
}

このように見えるように

function finishFetchKml(kmlObject) {
  // check if the KML was fetched properly
  if (kmlObject) {
    // add the fetched KML to Earth
    currentKmlObject = kmlObject;
    ge.getFeatures().appendChild(currentKmlObject);

    ///////////////////////////////////////////////
    // this is what you need to add
    var myView = currentKmlObject.getAbstractView();
            ge.getView().setAbstractView(myView);
    //////////////////////////////////////////////

  } else {
    // wrap alerts in API callbacks and event handlers
    // in a setTimeout to prevent deadlock in some browsers
    setTimeout(function() {
      alert('Bad or null KML.');
    }, 0);
  }
}

<Camera>次に、そのビューを<Placemark>またはに割り当てるかどうかを決定する必要があり<Document> ます。気づかなかった場合、<Camera>ビューは<Placemark>、真上のスポットから地平線を見ているのではなく、<Placemark>

于 2012-10-22T18:55:03.723 に答える
0

整形式の KML ファイルを読み込もうとしても、ファイルが正しく読み込まれない場合は、chrome、firebug などの開発者ツールを使用して Web サーバーのヘッダーを表示する必要があります。Web サーバーとして apache を使用している場合は、httpd.conf に追加する必要があります。

AddType アプリケーション/vnd.google-earth.kml+xml .kml AddType アプリケーション/vnd.google-earth.kmz .kmz

于 2012-10-25T11:07:46.030 に答える