캔버스 크기 조정에서 맵을 다시 그리거나 새로 고치는 방법은 무엇입니까?


9

지도 전체 화면을 설정하고 다시 일반 양식으로 설정하는 버튼이 포함 된 웹 페이지를 만들었습니다. 출력 창 크기를 조정할 때까지 문제 맵이 전체 화면으로 설정되지 않습니다.

모든 안내와 도움을 부탁드립니다.

작업 예는 다음과 같습니다. Demo


답변:


13

map.updateSize();끝에 추가$("#btn-full-screen").click...

데모

updateSize 설명서

이 함수는 맵 div의 크기를 동적으로 변경하는 외부 코드에 의해 호출되어야합니다 (mozilla가 요소의 "onresize"를 잡을 수 없기 때문에)


5

OpenLayers.Map.updateSize맵을 최대화 할 때 방법을 사용 하여 기본 레이어를 다시 그릴 수 있습니다.

따라서 다음과 같은 기능을 추가하십시오.

var fullScreen = function () {
    map.baseLayer().redraw();
}

지도에 추가 옵션 만 추가하면됩니다.

var map = new OpenLayers.Map({
    div: "map",
    center: new OpenLayers.LonLat(0, 0),
    updateSize: fullScreen,
    minResolution: "auto",
    minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
    maxResolution: "auto",
    maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
    projection: Mercator,
    displayProjection: Geographic
});

행운을 빕니다!


지도를 전체 화면으로 설정하지 않았습니다. 바이올린을 업데이트 할 수 있습니까?
bios

감사. 를 사용하여 확대 / 축소 할 때 타일이 흰색으로 바뀌 었습니다 transitionEffect: 'resize'. map.baseLayer().redraw();고쳤다.
Nicolas Boisteault

0

창 크기 조정, 탭 변경 또는 전체 화면 또는 필요에 따라 다른 이벤트와 같이 맵을 다시 그려야 할 때마다 다음 코드를 작성하십시오.

$(window).trigger('resize');

updateSize()내부적 으로 기능 을 자동으로 트리거합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.