4

Web サイトから Google Earth API をロードするときに開始するビューを設定していますが、このズームイン ビューではなく、スペースから開始してからズームインします。特に私のビューは北から南を見ているため、これは視聴者にとって不安定です。そのため、地球は途中で渦を巻いてい ます。 project3_tungurahua/tungurahua_hazards.html

地図が iframe に読み込まれます。ズーム ビューも変更せずにさまざまな kml を切り替えたいのですが、その質問は別に投稿します。私は答えを探しましたが、これに固有のものは何も見つかりませんでした.これに関する投稿を見逃した場合は、誰かが私を正しい方向に向けることができるかどうかを確認してください.

コードは次のとおりです。

      var ge;
google.load("earth", "1");

function init() {
   google.earth.createInstance('map3d', initCB, failureCB);
}

function initCB(instance) {
   ge = instance;
   ge.getWindow().setVisibility(true);
   // set navigation controls
   ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
   // to fetch a  KML file and show it
function finished(object) {
  if (!object) {
    // 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);
    return;
  }
  ge.getFeatures().appendChild(object);
  var la = ge.createLookAt('');
  la.set(-1.251336, -78.443817, 7000, ge.ALTITUDE_RELATIVE_TO_GROUND, 
         177, 65, 500);
  ge.getView().setAbstractView(la);         
}

//var marker = new GMarker(new GLatLng(-1.402002,-78.409471)); // latitude, longitude 
//   map.addOverlay(marker); 

function failureCB(errorCode) {
}

google.setOnLoadCallback(init);

ありがとう!!

4

1 に答える 1

2

抽象ビューをロードする前に、フライの速度をに設定できます。SPEED_TELEPORT

この設定により、グローブは「急降下」するのではなく、目的の場所に瞬時に飛行します。通常の動きを復元する必要がある場合は、最初のビューを取得した後、速度をデフォルト設定に戻すことができます。

たとえば、次の関数を使用して、目的の場所に瞬時に飛行できます。このメソッドは、任意のKmlAbstractView、つまりKmlCameraまたはKmlLookAtを単一のパラメーターとして受け入れます。

// fly-to a view using SPEED_TELEPORT
function teleport(abstractView) {
  var oldSpeed = ge.getOptions().getFlyToSpeed(); .
  ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT); 
  ge.getView().setAbstractView(abstractView);  // Wooosh!
  ge.getOptions().setFlyToSpeed(oldSpeed); 
}

GEWindowこれに加えて、可視性を Trueに設定する前にテレポートを移動させて、最初の位置でトランジションがまったく表示されないようにすることができます。例えば。

function initCB(instance) {
   ge = instance;
   var la = ge.createLookAt('');
   la.set(-1.251336, -78.443817, 7000, ge.ALTITUDE_RELATIVE_TO_GROUND, 177, 65, 500);
   teleport(la); // set the position
   ge.getWindow().setVisibility(true); // now display the window
   //etc..
于 2012-12-07T02:34:21.243 に答える