2012-03-23 2 views
1

내가하는 일은 Google지도에서 검색하거나지도를 드래그하여 위치로 이동하는 것입니다. 이제 주소 표시 줄에 다른 URL을 입력하고 해당 사이트로 이동하여 돌아옵니다. 브라우저 뒤로 버튼 (maps.google.com 등)으로 마지막 위치로 이동

내가 브라우저 백 버튼을 사용

는 구글지도가 자동으로 내가의 마지막 위치로 다시 전환됩니다. 내가지도를 드래그하고 "POST"어떤 종류를 사용하지 않은 경우이 작업이 어떻게

Google지도 사이트에 있습니까? 내 Google Google지도 앱에서 동일한 동작을하고 싶습니다.

나는

답변

0

먼저

google.maps.event.addListener(map, 'dragend', function() { 

}); 

그럼 당신은 getCenter를 (사용하여 좌표를 얻을)와 '#coordinates에 브라우저를 리디렉션합니다 '해시를 사용하면 창을 다시로드하지 않지만 기록에 저장합니다.

coords = map.getCenter(); 
window.location = '#' + encodeURI(coords); 

지금 당신은 당신이 좌표를 변경하려면지도를 알려줄 필요 끝에

$(window).bind('hashchange', function() { 
    var hash = window.location.hash.slice(1); 
}); 

(당신이 jQuery를 가지고 가정)를 URL에있는 '해시'변화를 확인하는 리스너를 추가해야하고 디코드 URL

hash = decodeURL(hash); 
map.panTo(hash); 

대신 동화 연극() 당신은 setCenter()를 사용할 수 있지만, 일부 NI 추가 ce 애니메이션을 선택하고 뒤로 버튼을 클릭합니다.

대신 'dragend'의 '을 및 center_changed'이벤트를 사용할 수있는 장소를 검색하여 작업이 코드를 변경하기 매우 쉽게 모든 것을 처리합니다. 내가 여기에 덮여에 대해 쓴

모든 :

https://developers.google.com/maps/documentation/javascript/reference#Map

희망이 당신을 도와줍니다.

+0

감사합니다. 합리적인 방법처럼 들리 겠지만 해결하자마자 피드백을 드리겠습니다. – NoRyb

+0

나는 이것이 내가 그렇게 할 수있는 아주 부정한 방법이라고 생각하기 시작한다. 그렇다면, 좌표를 저장하는 것 이상을 저장해야하며 URL에 모든 것을 표시하고 싶지 않고 북마크 할 필요도 없습니다. 재미있는 점은 Google지도는 해시 태그를 사용하지 않는다는 것입니다. 그리고 저는 브라우저의 역사조차 사용하지 않는다고 생각합니다. 나는 그들이 어떻게하는지 실마리가 없습니다 ... – NoRyb

+0

실제로 해시 좌표를 저장할 필요가 없습니다. 예를 들어 도시를 저장할 수 있습니다 ... 그 aproach에서 마커 배열 어딘가에 사이트 어쨌든 생성 된 있습니다 그래서 당신은 그 정보로 당신의 해쉬를 참조 할 수 있습니다 ... – Turek

1

내가 GMaps이 편리 방법이 있는지 모르겠지만, 일반적으로 이러한 기능은 사용자가 탐색 기록에 사용자 정의 단계를 추가 할 수 있습니다 HTML5 history.pushState()을 기반으로 자바 스크립트 V3에 대한 Google지도 API를 사용하고 있습니다 사용자가 다시 탐색 할 때 준수 :

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

을 좀 더 고급 응용 프로그램 상태를 이런 식으로 처리하는 경우, 그 위에, 예를 기반으로 여러 프레임 워크가 Backbone router, LeviRoutes.

HTML4 브라우저에서 pushStateemulated with fragment identifiers (해시 URL) 일 수 있습니다. 당신이 당신의지도에 'dragend을'이라는 이벤트를 찾아 모든

+0

이 일반적인 접근 방식을 주셔서 감사합니다. 나는 아마도 Turek (그리고 마지막 문장에서)이 지적한 해결책으로 갈 것이지만 pushState()에 대해 알고있는 것이 좋습니다. – NoRyb

관련 문제