0

Googleマップで実際に利用できるjQuery Mobileアプリケーションを開発しています。何度も繰り返してきましたが、ページの遷移やマップの永続性は扱えません。jQuery Mobileのページ読み込み間にGoogleマップを保存する

私はそれをすることを本当に約束しています。私はそれを働かせている方法は、まったく気に入らないような汚い回避策のようなものです。

私は、マップページのpageshowの上で実行されます。この機能を持っている:

initMap : function(){ 
    if (!Mapper.map || !$('#canvasMapa div').length){ // Or has been removed weirdessly 
     var mapOptions = { 
      zoom : 13, 
      center: new google.maps.LatLng (37.38264, -5.996295), 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      disableDefaultUI: true // Disabling buttons and stuff 
     }; 
     // We create a new one 
     Mapper.map = new google.maps.Map(document.getElementById('canvasMapa'),mapOptions); 
     if (Mapper.localStorage && !Mapper.favsLoaded) 
      Mapper.loadFavorites(); 
     if (Mapper.markers.length) 
      Mapper.recolocateMarkers(); 
    } 
    else { 
     console.log(Mapper.map); 
     Mapper.map.fitBounds(Mapper.mapBounds); 
    } 


    $('#mapa').die('pageshow'); 
} 

そして、それはそれだし。できます。最初の場合はマップが初期化されているかどうかをチェックし、内側のdivを失った場合はそれが時々発生しますが、マップがリロードされます。地図が読み込まれると、アプリにマーカーがあるかどうかがチェックされ、新しい地図に再割り当てされます。

これは、同じページ内のダイアログを読み込みます。あなたが好きなだけ。

それは、アプリのナビゲーションになります。あなたが別のページに行くと、変なことが起こり始める。これは、ページに移動してマップに戻ったときにコンソールに表示されるエラーです。

ただし、マップはまだ働いている:私が作ったMapper.map.fitBounds(Mapper.mapBounds);

唯一の回避策は、いつでもMapper.map変数をクリアすることです:

Uncaught TypeError: Cannot call method 'getSouthWest' of undefined 
c 
I.fitBounds 
I.fitBounds%7Bmain,geometry%7D.js:38 
S%7Bmain,geometry%7D.js:24 
I.fitBounds%7Bmain,geometry%7D.js:38 
BuSeViCi.initMapapp.js:78 
f.event.dispatchjquery-1.7.1.min.js:3 
f.event.add.h.handle.ijquery-1.7.1.min.js:3 
f.event.triggerjquery-1.7.1.min.js:3 
f.fn.extend.triggerjquery-1.7.1.min.js:3 
e.extend.eachjquery-1.7.1.min.js:2 
e.fn.e.eachjquery-1.7.1.min.js:2 
f.fn.extend.triggerjquery-1.7.1.min.js:3 
a.Widget._triggerjquery.mobile.min.js:17 
(anonymous function)jquery.mobile.min.js:43 
f.Callbacks.njquery-1.7.1.min.js:2 
f.Callbacks.o.fireWithjquery-1.7.1.min.js:2 
f.Callbacks.o.firejquery-1.7.1.min.js:2 
wjquery.mobile.min.js:41 
f.fn.extend.on.ejquery-1.7.1.min.js:3 
f.event.dispatchjquery-1.7.1.min.js:3 
f.event.add.h.handle.ijquery-1.7.1.min.js:3 

app.jsを指しラインが言うものです私は別のページに移動します。それは私が言ったようにそれは本当に汚れていると私は動作しているため、オブジェクトをログに私はGoogle Mapsオブジェクトを表示するので、地図を回復するために未定義のオブジェクトを確認したいと思います。

私は厳密が、これはアプリケーションを壊すためrel="external"を使用しないようにしたいです。あなたはホームページにそれをインストールすることも、それらの属性を持つPhoneGapsアプリを作ることもできません...あなたはそれについてどう思いますか?

答えて

1

エラーは、Mapper.mapBoundsがヌルであることを意味しますが、実際にはその理由を判断するのに十分な情報はありません。

+0

あなたはどこにいるのですか。テストではページ間をすばやく移動しようとしていたため、エラーを特定できませんでした。変更する:else if(BuSeViCi.mapBounds)BuSeViCi.map.fitBounds(BuSeViCi.mapBounds);トリックをやった!ご協力いただきありがとうございます :-) –

関連する問題