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지도 객체가 표시되기 때문에지도를 복구하기 위해 정의되지 않은 객체를 확인하고 싶습니다.

rel="external"은 응용 프로그램을 중단시키기 때문에 사용하지 않는 것이 좋습니다. 당신은 홈 페이지에 그것을 설치할 수 없으며 그러한 속성을 가진 PhoneGaps 어플리케이션을 만들 수 없습니다 ... 그것에 대해 어떻게 생각하십니까?

답변

1

이 오류는 Mapper.mapBounds이 null이라는 것을 의미하지만 여기에는 이유가 무엇인지를 판단하기에 충분한 정보가 없습니다.

+0

어디를 가나. 테스트에서 페이지 간을 빠르게 이동하려고했기 때문에 오류를 찾을 수 없었습니다. 변경 대상 : else if (BuSeViCi.mapBounds) BuSeViCi.map.fitBounds (BuSeViCi.mapBounds); 트릭을 했어! 당신의 도움을 주셔서 감사합니다 :-) –

관련 문제