2010-08-04 5 views
1

"초기지도 상태로 재설정"버튼/기능이 Google Maps API v3에서 삭제 된 이유를 알고 있습니까?Google지도 API v3에서 '초기지도 상태로 재설정'버튼이 삭제 된 이유는 무엇입니까?

API v2에서 화살표 버튼 중간의 손 모양 버튼은지도를 초기 위치 및 확대/축소 수준으로 다시 조정하는 일종의 '집'또는 '재설정'버튼이었습니다. 이 개발자가 스스로 할 오히려 쉽게 그리고 그들은 아마하지 않기로 결정 그래서 아주 널리 사용되는 기능이 아닙니다 때문에

단순히 호기심 물론 세계의 끝

...

답변

3

나는 생각한다 소수만 사용하는 코드로 모두에게 무게를 가하는 것.

페이지에 사용자 지정 컨트롤을 추가하고 사용자가 해당 컨트롤을 클릭하면지도를 원하는 확대/축소 및 가운데로 이동할 수 있습니다. 이것을 수집하는 한 가지 방법은지도 '유휴'이벤트를 수신 한 다음 X 초 동안 손을 대지 않은 채지도 위치 만 저장하도록 시간 초과를 설정할 수 있습니다. 물론 이것은 v2 버전처럼 보일 수 없습니다 :)

+0

API v2를 사용하여 "배타적으로"나온 몇 가지 작은 동작이 v3에서 삭제 된 것 같습니다. 하지만 v3은 더 빠르고 가벼워 보인다. – Dougal

1

여기 리셋 버튼이 v3에서 작동하도록하는 작은 해킹이 있습니다. 여기서 jQuery를 사용합니다.

var attachEventToResetButton; 

// Attach event to the reset button 
var attachResetEvent = function(){ 
    var $resetImg = $('img[src*=mapcontrols3d6.png]'); 

    // We have to check if the image is available yet. 
    // The reason is although the map has been loaded, the navigation might 
    // take some time to load and we don't know when it will be fully loaded. 
    // There doesn't seem to have an event for "Navigation loaded" in the API 
    // So here is a way to work around 
    if ($resetImg.length > 0) 
    { 
     $resetImg.css('cursor', 'pointer').attr('title', 'Return to center').click(function(){ 
      alert('Clicked on reset button'); 

      // Put your code to reset the map here. For example: 
      //map.setMapTypeId(MAP_TYPE_ID); 
      //map.setCenter(new google.maps.LatLng(LAT, LNG)); 
      //map.setZoom(ZOOM_LEVEL); 
     }); 

     window.clearInterval(attachEventToResetButton); 
    } 
} 

// Periodically checking to attach event to the reset button 
attachEventToResetButton = window.setInterval(attachResetEvent, 500); 

내가 한 것은 재설정 된 이미지 파일 이름이 'mapcontrols3d6.png'입니다. 그래서 이미지가로드되었는지 (즉, 사용 가능한지) 확인하기 위해 간격을 설정합니다. 그렇다면 함수에 함수를 추가합니다.

해킹이므로 다소 문제가 있습니다. 주된 것은 리셋 이미지 파일 이름에 의존해야한다는 것입니다. 따라서 Google은이를 업데이트하지 않습니다.

더 좋은 방법이 있습니까?

+0

멋진! 나는 그것을 시도 할 것이다. 감사. – Dougal