0

Google Earthのコールバックを機能させようとしていますが、起動していないようです。Google Earth APIサイトのビュー変更例を参照として使用しましたが、コードとの違いはわかりません...それでも私のものは機能しません!

これが私のコードの重要な部分です:

<script type="text/javascript">
var ge;

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

function init() {
  document.getElementById('map3d').innerHTML = '';
  google.earth.createInstance('map3d', initCallback, failureCallback);
}

function initCallback(pluginInstance) {
  ge = pluginInstance;
  ge.getWindow().setVisibility(true);

  // add a navigation control
  ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);

  // Set the FlyTo speed.
  ge.getOptions().setFlyToSpeed(ge.SPEED_TELEPORT);

  // add some layers
  //ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
  //ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);

  throw (new Error("InitCallback!"));

  google.earth.addEventListener(ge.getView(), 'viewchange', function () {
      throw (new Error("EVENT!"));
  });

}

function failureCallback(errorCode) {
}
</script>

「InitCallback!」エラーは正しくスローされますが、「EVENT!」が表示されません。エラーがスローされました-地球をどれだけ動かしても。

誰かが私が間違っていることを見ていますか?どんな助けでも大歓迎です!

4

2 に答える 2

2

私はJavaScriptの専門家ではありませんが、次のように置き換えた場合:

       throw (new Error("EVENT!"));

代わりにアラートを使用します。例:

       alert('EVENT!');

私はあなたがそれがうまくいくと思うでしょう。つまり、eventListenerは機能していますが、「throw」コマンドが気に入らないようです。

于 2012-08-24T18:16:19.680 に答える
1

lifeIsGoodは正しいです-trycatchブロックなしで上記のようなエラーをスローすると、スローされたエラーの後にjsが実行されなくなります。

代わりにconsole.log('Error');、単に「手っ取り早い方法」を使用してコンソールに何かを印刷しようとしている場合に使用してください...

function initCallback(pluginInstance) {
     ge = pluginInstance;
     ge.getWindow().setVisibility(true);

     //throw (new Error("InitCallback!")); -- change this to 
     console.log('InitCallback!');

     google.earth.addEventListener(ge.getView(), 'viewchange', function () {
         //throw (new Error("EVENT!")); -- change this to
         console.log('EVENT!');
     });

}
于 2012-08-28T14:13:46.200 に答える