내가 조금 이상한 코드를 구성하려고하지만, 완벽하게 작동합니다 :
<script>
var map;
var center = -1;
var isFullScreen = false;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: { lat: -34.397, lng: 150.644 }
});
center = { lat: map.getCenter().lat(), lng: map.getCenter().lng() };
google.maps.event.addDomListener(map, 'bounds_changed', onBoundsChanged);
}
function onBoundsChanged() {
var isFullHeight = $(map.getDiv()).children().eq(0).height() == window.innerHeight;
var isFullWidth = $(map.getDiv()).children().eq(0).width() == window.innerWidth;
if (isFullHeight && isFullWidth && !isFullScreen) {
isFullScreen = true;
map.setCenter(center);
console.log('FULL');
} else if (!isFullWidth||!isFullHeight){
if (isFullScreen) {
map.setCenter(center);
}
isFullScreen = false;
console.log('NOT-FULL');
}
center = { lat: map.getCenter().lat(), lng: map.getCenter().lng() };
}
</script>
내가 한 bounds_changed 이벤트를 사용합니다.
지도가 전체 화면으로 표시되는 경우 전례 이벤트에서 기록한 가운데에지도를 설정하고 부울을 true로 설정합니다. 지도가 전체 화면으로 표시되지 않으면 부울이 참인지 확인합니다. 즉, 선행 이벤트에서지도가 전체 화면으로 표시되었으므로지도를 다시 입력하고 그 다음 부울이 false인지 확인합니다. 이벤트가 끝나면 다음 이벤트에서 센터를 가변적으로 유지합니다.
이 모든
은
당신은 스택 오버플로에서
this 게시물을 협의 할 수있다 ... 매우 명확하지 않다.
알림 :웹 응용 프로그램의 모든 페이지에 하나의지도를 표시하면이 코드가 작동하지 않습니다. 이 버그를 제거하는 방법을 찾지 못했습니다. 귀하의 제안은 매우 감사드립니다.
참고 사항 :내 코드는 선례의 답을 얻은 것입니다. 그러나 동일한 코드 here을 찾을 수 있습니다. 중복 답변이 아닙니다. 내 부분에 코드를 추가합니다.
몇 가지 질문이나 의견이 있으면 알려주십시오.
http://stackoverflow.com/questions/39620850/google-maps-api-v3-how-to-detect-when-map-changes-to-full-screen-mode/ –
Crapachi, 어디에서 답을 찾을 수 있습니까? @ anatoly.sukhanov이 관련 질문은 fullScreen을 변경하기 전에 .getCenter()를 사용하는 방법과 fullScreen을 변경 한 후 .setCenter()를 수행하는 방법에 대해서는 아무 것도 말하지 않습니다. – Emilio
@Emilio google.maps.Map.getCenter , google.maps.Map.setCenter 또는 panTo –