2017-10-20 10 views
2

Google지도와 오픈 레이어 간의 통합을 개발 중입니다. 4. this example from documentation for openlayers 3에 관한 저의 연구 결과를 기반으로합니다.오픈 레이어의 줌 레벨을 정수로 제한하는 방법

제 문제는 이벤트의 ol 3과 ol 4.4.2 동작 사이의 차이가 변경되었습니다. 이전에이 코드

view.on('change:resolution',() => { 
    console.log(view.getZoom()) 
}) 

은 마우스 휠 회전 당 한 번만 호출하고 (예를 들어) 기록 된 :

5 

을 지금은이 같은 생산 : 그래서 때

4.017277252772164 
4.08563754449778 
4.152661471658049 
4.522609511830051 
4.691606503462093 
4.793368457643155 
4.891103916717288 
4.980192777999678 
4.999621855713164 
5 

를 I Google지도와 openlayers (예에서와 같이) 사이의 줌 동기화를 시도하면 Google지도가 모든 확대/축소에서 깜박입니다. Google지도가 줌의 분수 값을 지원하지 않는 것 같습니다.

오픈 아이디 줌 값을 정수로 제한 할 수 있습니까?

googleMap.setZoom을 호출 할 때 openlayers의 ceil/floor 값을 사용하려고 시도했지만 확대/축소에도 중심 위치가 변경되어 불규칙적 인 동작을 초래하기 때문에

답변

0

기본 동작은 핀치 확대/축소시 더 나은 태블릿 및 트랙 패드 지원입니다.

interactions: ol.interaction.defaults({mouseWheelZoom: false}).extend([ 
     new ol.interaction.MouseWheelZoom({ 
     constrainResolution: true // force zooming to a integer zoom 
     }) 
    ]) 

http://openlayers.org/en/latest/examples/mousewheel-zoom.html

+0

당 내 문제를 해결하기 위해 표시되지 않습니다. 예, 확대/축소의 최종 값은 정수이지만 여전히 그 중간에 분수를 구합니다. –

+0

사용 'map.on ('moveend',() => { 을 console.log (map.getView(). getZoom()) 은})' 당신은 줌 해상도 변경에없는 종료 후 원하는 때문에 확대/축소 수준간에 애니메이션 효과가 있습니다. –

+0

openlayers 애니메이션이 끝난 후에 만 ​​Google지도 확대/축소 애니메이션을 시작할 수 없습니다. 이제 더 이상 보이지 않습니다. –