2014-01-21 3 views
0

일단 마커 세트로 초기화 한 후 gmap3으로 만든 Google지도를 다시 사용하고 싶습니다. 나는 동일한 코드 조각을 실행하는 새로운 마커지도를 업데이트 할 때gmap3 (버전 5) 생성 된 Google지도를 재사용하거나 다시 초기화하는 방법은 무엇입니까?

$('#mapWrapper').gmap3({ 
    clear: { 
     name:['marker', 'infoWindow'] 
    }, 
    map:{ 
     options: mapOptions 
    }, 
    marker:{ 
     values: markers 
    } 
}); 

:이 기능은 현재 그러나 나중에 설명

은 현재 내가 비슷한을 실행 작동합니다.

새로운 ios7의 메모리 제한으로 인해 코드바가있는 ios7의 하이브리드 응용 프로그램에서 실행하는 데 문제가 있습니다. 그래서 메모리 누수를 제거하는 방법을 찾고 있습니다.

+0

_really_ ** 메모리 ** 한도입니까 아니면 ** 저장 용량 한도입니까? – davidkonrad

+0

@ davidkonrad 기억 장치 대 메모리 제한에 대해 자세히 설명해 주시겠습니까? –

답변

1

gmap3 v5 은 이미 초기화 된 경우 재사용합니다. 당신은 $.fn.gmap3 자신에 의해, 코드에서 그것을 볼 수 있습니다

gmap3 = $this.data("gmap3"); 
.. 
if (!gmap3){ 
     gmap3 = new Gmap3($this); 
.. 

당신은 반복지도를 다시 초기화 할 필요 없다 - 단지/다시 새로운 마커를 추가 할 수 있습니다. 당신이 위의 코드로 gmap3 초기화가 말을하고, 두 개의 버튼이하자 - #addMarker#clearMarkers :

<button id="clearMarkers">clear</button> 
<button id="addMarker">add</button> 

그런 다음이 같은 비행에 마커를 추가/제거 할 수 있습니다 그래서

//add a marker, this could be an array of markers/latlngs 
$("#addMarker").click(function() { 
    $('#mapWrapper').gmap3({ 
     marker:{ 
      latLng : new google.maps.LatLng(46.578498, 2.457275) 
     } 
    }); 
}); 

//clear all markers on the map 
$("#clearMarkers").click(function() { 
    $('#mapWrapper').gmap3({ 
     clear: { 
      name:["marker"], 
     } 
    }); 
}); 

을 gmap3은 이미 자신을 재사용합니다.

그러나 메모리 문제가있는 경우 - 어쨌든 "비싼"라이브러리를 gmap3으로 사용하는 이유는 무엇입니까? 네이티브 Google지도를 사용하면 더 좋지 않을까요?지도 인스턴스를 사용하여지도를 업데이트 하시겠습니까? 그것은 확실히 메모리 사용량을 많이 줄일 것입니다.

하지만 실제로는 메모리 인 것으로 완전히 확신하지는 않습니다. 사람들이 스마트 폰에서 Google지도의 문제에 직면 할 때 Google지도의지도 타일 캐싱으로 인해 대부분 내부 캐시를 빠르게 채울 수 있습니다.

Google지도 타일 캐시를 완전히 피할 수 있습니다.이 링크를 참조하십시오. - How to prevent Google Maps API v3 from caching tiles - 질문/답변에 거의주의를 기울이지 않아도 훌륭합니다.