2012-05-14 5 views
3

Google지도 (현재)를 통해 다른 사람들이 기둥을 넘길 수있게하는 것이 문제가되는 사람이 있습니까? 기둥에 멈추지 않았던가요?Google지도가 지구의 '가장자리'에서 벗어납니다.

내가 작업하고있는 사이트는 사용자가지도를 화면 이동하거나 확대 할 때마다 Google 서버에서 위치 기반 쿼리를 수행합니다. 이는 맵 가장자리에서 패닝 (panning) 한 사용자가 트리거 한 쿼리가 무의미하기 때문에 오류가 발생합니다.

현재로서는 서버 측에서 말하자면 가장자리 케이스를 처리하고 있지만 클라이언트 측에서는 사용자 환경이 좋지 않습니다. 누구든지 과도한 패닝을 예방할 수있는 해결책이 있습니까?

감사

스크린 샷 : 회색 영역을 피하기 위해 edge of the earth!

+0

당신은 너무 구글지도 사이트에서이 작업을 수행 할 수 있습니다, 그래서 당신은 항상 세계의 평평하고 있음이 "여기 용 수"사용자 말할 수 –

+2

그것은 아주 정상입니다. –

+0

예, 용. 그 또는 아무것도. 좋은 해결책. – smabbott

답변

3

한 가지 방법은, "범위 제한"이 예 다음, 사용자의 패닝을 제한하는 것입니다; 그러나, 그것은 버전 3, http://jsfiddle.net/44e6y/9/에서 작동하도록 간단합니다 2.

http://econym.org.uk/gmap/range.htm

버전 용으로 작성하지만, 단점이 있습니다 것 :

  • 그것은 내부에있는지도의 중앙에 의존는 상자이므로
  • 확대/축소하면 볼 수있는 영역이 훨씬 제한됩니다 (폴에 관심이 없다면 문제가되지 않지만 다양한 줌에 대해 LatLngBounds 배열이있을 수 있습니다. 그린 랜드를 볼 때 필요합니다)
  • 마지막 점의 결과로 JSFiddle iframe 크기에 대해 최소 확대/축소를 2로 강제 설정합니다. 지도가 전체 화면을 차지하는 경우 회색 영역을 표시하지 않으려면 최소 확대가 더 높을 수 있습니다. 일반적으로 최소값이 높을수록 확대/축소하면 더 예측 가능한 동작입니다.
+0

감사합니다. 나는 그것을 시도 할 것이다. 그래도 Google지도에 내장해야하는 것처럼 보입니다. 그렇습니까? – smabbott

+0

기본 동작은 줌이 낮을 때 폴 근처의 중심을 설정하는 것과 같은 경우를 다루는 것이라고 생각합니다. 엄밀히 말하면 포인트가 div에 집중되면 뭔가를 표시해야합니다. 그래도 자동으로 패닝을 제한하는 옵션을 사용하는 것이 좋음에 동의합니다. –

+0

마침내 이것으로 돌아갑니다. 당신의 솔루션은 훌륭하게 작동합니다. 감사. – smabbott

0

동일한 문제가있어서 레벨 2의 확대/축소 대상 (다른 줌 레벨이 예제에서 실패 함)이 있기 때문에 수식을 찾으려고 시도했지만 성공하지 못했습니다. - 값이있는 처음 8 개의 줌 레벨로 코드화됩니다. 분명히 이것은 완전히 작동하는 예제로 확장 될 수 있지만 이것은 99 %의 경우에 충분하다고 생각합니다.

JSFiddle here

은 또한 더 나은 작동되도록하려면 다른 청취자를 추가했다.

google.maps.event.addListener(map, 'zoom_changed', function() { 
     checkBounds();}); 
관련 문제