5

backbone.js+jquery mobile で Google Earth API を使用するにはどうすればよいですか?

backbone.js、underscore.js、jQuery Mobile を使用してアプリケーションを作成しました。Google Earth API については、 https://developers.google.com/earth/documentation/#using_the_google_earth_apiにリストされているサンプル コードを使用しています。

私のテンプレート レンダリング、および他のすべてのページは正常に動作していますが、Google Earth API を 1 つのタグにロードすると、ロードされず、js コンソールに「ERR_INVALID_DIV」というメッセージが表示されます。

Google.earth モジュールは initCallback をコールバックしません。google.earth.createInstance が呼び出されると、常に failureCallback をコールします。

以下のように、私のアプリケーションのサンプルコードを説明します。それに基づいて、コード構造を取得し、問題を解決するのに役立ちます。

以下の私のjsコード、

myjs1.js

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

function initCB(instance) {
  console.log(' init call back call ');
  ge = instance;
  ge.getWindow().setVisibility(true);
}

function failureCB(errorCode) {
    console.log(errorCode);
}

今、私のバックボーンコードは以下のとおりです。

myjs2.js

WebApp.MyPage= Backbone.View.extend({

initialize:function (result) {
    this.template =_.template($('#myPage').html());
},

render:function (eventName) {
    var self = this;
    mydata = object dict of my data;
    $(self.el).html(self.template({mydata:mydata}));

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

    init();
    google.setOnLoadCallback(init);

}

今、私のHTMLコードは次のようになります

<script type="text/template" id="myPage">
    <div data-role="page">
        <div data-role="content">
            <div id="map3d" style="height: 400px; width: 600px;"></div>
        </div>
    </div>
</script>

myhtml.html

これを修正する方法はありますか?

どんな助けでも感謝します。

4

1 に答える 1

0

Earth API は、Windows と Mac OSX でのみ使用できるGoogle Earth プラグインと連携します。携帯端末ではご利用いただけません。申し訳ありません。

Mac または Windows システムでテストしている場合は、動作させることができるはずです。エラーコードは、 divERR_INVALID_DIVが見つからないようです。コード内の呼び出しの直前にステートメントを挿入map3dし、DOM インスペクターを調べて、DOM内にあるかどうかを確認します。その部分が機能している場合は、テンプレートから入ってくるはずです。debugger;google.earth.createInstance()map3d

しかし、モバイル デバイスでサイトを読み込もうとすると、Earth プラグインが利用できないため、これは役に立ちません。

于 2013-06-06T07:55:47.073 に答える