複数の可能なオプションがあります。
A)だけデータセットを持っている場合は、StyleFunction
を使用することができます。
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'https://openlayers.org/en/v3.20.1/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
}),
style: function(feature, resolution) {
style.getText().setText(resolution < 5000 ? feature.get('name') : '');
return style;
}
});
がstyle
プロパティを参照してください:このコードのol3 vector example、より具体的には、このセクションを参照してください?上記のように、ol.style.Style
またはスタイル関数にすることができます。関数は引数としてマップビューのフィーチャと現在の解像度を受け取り、フィーチャがレンダリング(またはレンダリング)されるたびに呼び出されます。 ol.style.Style
またはスタイルオブジェクトの配列を返すと、/これらのスタイルを使用して機能がレンダリングされます。
このフィーチャは固有のプロパティを持つことができます。つまり、feature.getProperties()
です。そのフィーチャ内の多くのプロパティを使用して、ユニークなスタイルオブジェクトのユニークな配列を返すことができます。
ここでは、解像度に応じてダイナミックなスタイリングの例を見ることができます。complex ol3 example featuring style functionsです。これにより、フィーチャーのプロパティーでできることをよりよく理解できます。
B)あなたは複数のデータセットを持っている場合は、すべて同じ機能をレンダリングすることになる、データセットごとに1つのベクトルレイヤーを作成し、レイヤー上のユニークなスタイルオブジェクトを定義することができます。
私も同じ問題に直面しています。また、leaflet.jsも試すことができます –
しかし、私はOpenLayers 3のソリューションが必要です。 – SHK