2016-08-08 4 views
1

내 응용 프로그램에 OpenLayers 3과 OpenStreetMap을 사용하고 있습니다. 마커를 그리기 위해지도에 원 벡터를 그려 냈습니다. 문제는 내가 원을 확대하거나 축소 할 때 항상 같은 크기를 유지한다는 것입니다. 해상도에 따라 벡터의 크기를 어떻게 바꿀 수 있습니까? (즉, 당신이 원하는 거라면)OpenLayers 3 기능 크기 조정

var dealerSource = new ol.source.Vector(); 
function dealerStyle(feature) { 
    var style = new ol.style.Style({ 
     image: new ol.style.Circle({ 
      radius: 6, 
      stroke: new ol.style.Stroke({ 
       color: 'white', 
       width: 2 
      }), 
      anchor: [1.5, 1.5], 
      fill: new ol.style.Fill({ 
       color: 'green' 
      }) 
     }) 
    }); 
    return [style]; 
} 
+0

내가 할 수 있기를 원하는 것은이 예제에서 OpenLayers 2를 사용하는 것과 같습니다. http://dev.openlayers.org/examples/resize-features.html –

답변

0

당신이 (

var dealerSource = new ol.source.Vector(); 
function dealerStyle(feature) { 
    var style = new ol.style.Style({ 
     image: new ol.style.Circle({ 
      radius: map.getView().getZoom(), 
      stroke: new ol.style.Stroke({ 
       color: 'white', 
       width: 2 
      }), 
      anchor: [1.5, 1.5], 
      fill: new ol.style.Fill({ 
       color: 'green' 
      }) 
     }) 
    }); 
    return [style]; 
} 

getZoom을 줌 레벨에 따라 당신의 원의 크기를 변경할 수 있습니다) 반환 : 여기

내 벡터의 정의입니다 지도의 줌 레벨을 숫자로 사용하거나 원의 원하는 크기에 맞게 변형 할 수 있습니다. 더 큰 위의 줌 레벨이 더 큰 당신의 원이 그려 질 것입니다

참고 역을 할 당신에 의해 값을 대체 할 수

yourMaxZoomLevel - map.getView().getZoom() 
당신은 또한 getResolution()를이 숫자를 반환 사용할 수 있습니다

too