2017-08-29 8 views
0

円の中心にアイコンを表示しようとしています。ここで が私のコードです:ベクトルレイヤのフィーチャにスタイルを適用するときに、アイコンがOpenLayersに表示されない

jsFiddle:http://jsfiddle.net/61dkv8tr/2/

(function(){ 

    var base64img = "data:image/gif;base64,R0lGODlhPQBEAPeoAJ[...]=="; 

    var extent = [0, 0, 400, 400]; 

    var sourceV = new ol.source.Vector({ wrapX: false });   

    var map = new ol.Map({ 
     renderer: 'canvas', 
     target: 'divMap', 
     layers: [   
      new ol.layer.Vector({ 
      source: sourceV 
      }) 
     ], 
     restrictedExtent: extent, 
     view: new ol.View({   
      center: ol.extent.getCenter(extent), 
      extent: extent, //world limit drag map  
      resolution : 1 
     }) 
     }); 

    var radius = 50; 
    var x = 200; 
    var y = 200; 

    var circleGeom = new ol.geom.Circle([x, y], radius); 
    var feature = new ol.Feature(circleGeom); 
    feature.setStyle(new ol.style.Style ({ 
    stroke: new ol.style.Stroke({ 
     color: 'black', 
     width: 1  
    }), 
    image: new ol.style.Icon({ 
     src: base64img, 
     color: '#4271AE', 
     crossOrigin: 'anonymous', 
    }) 
    })); 

    sourceV.addFeature(feature); 

})(); 

レンダリング円の単なるストロークです。私は何かが恋しいですか? アイコンは小さな赤いバスです。

PS:私も...相対URL、絶対URL、キャンバスで試してみました

ありがとう!

答えて

0

OKソリューションが見つかりました。 style.Iconは、プロパティ 'geometry'がタイプ(geom.Point)(またはジオメトリタイプとしてポイントを所有している場合)のみ動作します。

は、私は、ジオメトリの中心を計算する方法 getExtent()を使用して、私はタイプ ポイントの新規作成、ジオメトリのいずれかのタイプを回避します。

関連する問題