2017-08-03 1 views
4

ポリゴンを編集するときにOSMが使用するのと同じスタイルを再作成したいと思います。私はそれを「インテリアストローク」または「インテリアバッファー」と呼んでいます。OpenLayersでポリゴンに内部バッファまたは内部ストロークを描画する方法4

OSM例:

enter image description here

私は私は1つの内部バッファにgeometryを送り返すと、ol.style.Styleのアレイを使用することができることを知っています。しかし、元のジオメトリをバッファで表現するだけでは、新しいジオメトリを作成するのは本当にリソース集約的なようです。それはお勧めの方法ですか?いくつかの高度な方法でol.style.Strokeを使用できますか?


さらなる特徴は、「内部ストローク」のスクリーンピクセル幅にかかわらずズームレベルの、一定量であることです。例えば、ここでそのポリゴンがズームアウトして中だ:

Zoomed out Zoomed in

答えて

0

これは私が私のプロジェクトで使用しているものと同様です。 http://openlayers.org/en/latest/apidoc/ol.style.htmlより太い境界線が必要な場合は、ストロークで幅を広げることができます。

var fill = new ol.style.Fill({ 
    color: 'rgba(255,255,255,0.4)' 
}); 
var stroke = new ol.style.Stroke({ 
    color: '#3399CC', 
    width: 1.25 
}); 
var style = new ol.style.Style({ 
    fill: fill, 
    stroke: stroke 
}); 
+0

ストローク幅を持つストロークを使用するだけで、ストロークピクセルが実際の座標の中心に直接配置されますが、私は求めているように内部ではありません。私は言っている方法を探しています: "ストロークを描画*内部*形状には、*国境ではない" – craigsnyders

+1

あなたが形の中に描画したい場合は、2つのポリゴンを使用する必要がありますね。私はAPIを見ました。 1つのポリゴンで問題を解決できるものは見つかりませんでした。 –

関連する問題