2011-04-12 5 views
5

현재 v2에서 v3으로 이전 중입니다. 세상을 종적으로 반복해서는 안됩니다.GMap v3에서 세계 랩핑 방지

는 V2에서 이것은 이런 식으로 보관 될 수있다 :

var proj = new GMercatorProjection(30); 
proj.tileCheckRange = function(a,b,c) { 
    var tileBounds = Math.pow(2,b); 
    if (a.y<0 || a.y >= tileBounds) {return false;} 
    if (a.x<0 || a.x >= tileBounds) {return false;} 
    return true; 
}; 

proj.getWrapWidth = function(zoom) { 
    return 99999999999999; 
}; 

G_NORMAL_MAP.getProjection = function() {return proj;}; 

하지만 v3의 해결책을 찾기 위해 아직있다.

EDIT 조금 명확히하기 : 나는 패닝 (옆으로 네비게이션)을 방지하는 방법이 아니라지도가 스스로 반복하는 것을 방지하는 방법을 찾고 있습니다. 낮은 줌 레벨에서

답변

2

How do I limit panning in Google maps API V3?에서 두 답변을 확인하십시오. 여기서 설명 된 기술은 대부분의 방법을 (또는 유스 케이스에 따라) 얻을 수 있습니다.

이러한 답변에는 줄 바꿈을 제한하는 방법이 나와 있지 않지만, 줄 바꿈을 제한하는 방법은 나와 있습니다. 초기 뷰포트에있는 항목을 제한하기 위해 다른 조치를 취할 수 있다면 (예 : 크기를 제어하고 줌 레벨과 초기 좌표를 적절하게 제한 할 수있는 경우), 제한 이동을 사용하면 거기에 도달 할 수 있습니다.

+0

을 방지 할 수있다. 예를 들어 크기를 제어하고 줌 레벨과 초기 좌표를 적절하게 제한 할 수있는 경우 초기 표시 영역의 내용을 제한하기 위해 다른 조치를 취할 수 있습니다. 패닝을 제한하지 않으면 차단을 제한 할 수 있습니다. – Trott

-1

세계 포장은 쉽게 내가 쓴 왜 "이 방법의 가장" "사용 사례에 따라"것 (트롯에 의해 연결 답변에서 적응)이 방법

// prevent wrap                                                              
    var lastValid = map.getCenter(); 
    google.maps.event.addListener(map, 'center_changed', function() { 
    if(map.getBounds().getNorthEast().lng() > map.getBounds().getSouthWest().lng()) { 
     lastValid = map.getCenter(); 
    } 
    else 
     map.panTo(lastValid); 
    }); 
+1

이것은 포장하지 않고 패닝 만 방지합니다. – Mene