2013-06-03 27 views
5

Jak mogę używać Google Earth API z backbone.js + jquery mobile?Jak mogę używać Google Earth API z backbone.js + jquery mobile?

Utworzyłem aplikację używając backbone.js, underscore.js i jQuery Mobile. Dla Google Earth API używam przykładowego kodu wymienionego pod adresem https://developers.google.com/earth/documentation/#using_the_google_earth_api

Moje renderowanie szablonu i wszystkie inne strony działają poprawnie Ale kiedy ładuję google earth API w jednym tagu, to nie ładuję się i w konsoli js otrzymuję komunikat : "ERR_INVALID_DIV".

Moduł Google.earth nigdy nie oddzwania do programu initCallback, to zawsze wywołuje failureCallback po wywołaniu google.earth.createInstance.

Wyjaśniam przykładowy kod aplikacji kopalni, ponieważ pod tym względem można uzyskać moją strukturę kodu i pomaga rozwiązać mój problem.

mój kod js jak w,

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); 
} 

Teraz mój kod Backbone jak Under,

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); 

} 

Teraz moje kod HTML jak jako pod,

<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

Czy istnieje sposób, aby to naprawić?

Każda pomoc doceniona.

+0

Powinieneś przynajmniej podać kod, aby podać kontekst do twojego pytania, w przeciwnym razie nasze wskazówki są nawet mniejsze niż twoje ... – namero999

Odpowiedz

0

Interfejs Earth API działa z Google Earth Plugin, który jest dostępny tylko w systemach Windows i Mac OSX. Nie jest dostępny na urządzeniach mobilnych, przepraszam!

Jeśli testujesz na komputerze Mac lub systemie Windows, powinieneś być w stanie go uruchomić. Kod błędu ERR_INVALID_DIV brzmi, jakby nie znajdował się div o numerze map3d. Wstawię instrukcję debugger; w kodzie tuż przed wywołaniem google.earth.createInstance(), a następnie rozejrzę się po inspektorze DOM i sprawdzę, czy map3d znajduje się w DOM. Powinien przychodzić z twojego szablonu, jeśli ta część działa.

Ale to nie pomoże, gdy spróbujesz załadować swoją witrynę na urządzenie mobilne, ponieważ nie będziesz mieć tam dostępnej wtyczki Earth.

+0

Testuję na moim systemie Windows z zainstalowaną wtyczką Earth, ale to nie działa :( –

+0

OK, Z pewnością powinno być możliwe, aby działało na twoim systemie Windows, ale czy ostatecznym celem jest użycie go na stronie mobilnej? To nie zadziała –

+0

Kiedy próbuję tego na pojedynczej statycznej stronie html bez szkieletu, podkreślenia i jQM niż działa dobrze, ale nie w dynamicznej aplikacji, która jest tworzona przez szkielet, podkreślenie i jQM.Dlatego, dla mojej dynamicznej aplikacji mam tylko opcję jako Google Map, ale uwielbiam Google Earth –

Powiązane problemy