2016-08-08 21 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()のリターンをあなたの円の大きさを変更することができますあなたのマップのズームレベルを数字で表示したり、サークルの希望のサイズに合わせて変換を行うことができます。それは数を返す)あなたも(getResolutionを使用することができます

yourMaxZoomLevel - map.getView().getZoom() 

:大きなズームレベルを超える大きなサークルは、あなたがして値を置き換えることができます逆を行うために、描画されますされていることを

注意

関連する問題