2011-12-19 1 views
5

TMS 레이어가있는 OpenLayers 맵이 있습니다. 각 줌 변경에 대해 내지도는 약 56 회의지도 타일 요청을합니다 (지도/화면 크기에 따라 다름). 사용자가 빠르게 확대 또는 축소하면 이러한 모든 맵 타일 요청이 순서대로 큐에 저장되고 OpenLayers의 맵 타일 요청은 비동기 적으로 호출되지 않습니다. 따라서 사용자가 빠르게 확대하거나 축소하면 더 이상 필요하지 않은지도 타일에 대한 많은 요청이 끝나고 이전의 모든 요청이 이루어질 때까지 필요한 타일이로드되지 않습니다.확대/축소가 변경되면 OpenLayers로 대기중인지도 타일 요청을 어떻게 중단합니까?

확대/축소가 변경되면 보류중인지도 타일 요청을 중단하는 방법이 있습니까? OpenLayers를 통해서가 아니라면 보류중인 모든 요청을 특정 URL로 중단시키는 방법이 있습니까?

+0

OPEN LAYER API가 설명하는 한 KEY UP, KEY DOWN 등과 같은 이벤트가 있습니다. 일단 키가 올라 오면 요청을 보내도록 이벤트를 제어 할 수 있습니다. 그리고 이전에 쌓여 있던 요청을 제거하는 데 도움이되는 destroy() 함수가 있습니다. –

+0

여기에서 확인할 수있는 클래스가 있습니다.이 모든 것을 처리하는 http://dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Control-js.html#OpenLayers.Control. 희망이 도움이됩니다. 감사합니다 –

답변

2

위 OpenLayers 2.12 또는으로 업데이트하기 때문에이 버전 이후 타일 큐가있다 향상된 기능으로 이전 요청을 피할 수 있습니다. OpenLayers 2.12 Release Notes에서 인용하려면 : 그리드 레이어 타일 로딩 지금 큐에서 수행되도록

타일링 코드가 철저하게되었습니다. 타일 ​​대기열은 타일 요청을 서버에 더 많이 제어합니다. 이 아닌 (예 : 확대/축소 또는 이동) 타일이 더 이상 필요하지 않은 타일에 대한 보류중인 요청이 회피됩니다. 이는 은 성능을 높이고 서버로드를 줄입니다.

+0

이 여전히 유효합니까? 코드는 더 이상 마스터에 없으며 유사한 것으로 대체 된 것 같습니다. 보다 나은? 그러나 문제는 여전히 고객에게 있습니다. – relet

1

당신은 마우스 휠로 확대 정의 할 때, 당신은 모든 중간 zoomlevels에 대한 로딩 타일을 방지하기 위해 다음 코드를 사용할 수 있습니다

new OpenLayers.Control.Navigation({ 
    "zoomWheelEnabled": true, 
    "mouseWheelOptions": { 
     "interval": 250, 
     "cumulative": true 
    } 
}) 
관련 문제