Tiles3DStyle¶
OGC 3D Tiles Style (Declarative Styling)
フィーチャーのプロパティから表示可否・色などを算出する。スタイル JSON と式の文法は
3D Tiles の Styling 仕様に従う。仕様は式の評価に失敗したときの扱いを定めていないので、
描画時の扱い (show が失敗した feature は表示・白に、color だけが失敗した feature は色だけ白にする)
は Mapray 独自である。描画に適用されるのは color と
show だけである。pointSize と meta は Tiles3DStyle.evaluate の戻り値には
入るが、Tiles3DScene はメッシュのみを描くため反映されない。
式はスタイル・利用者の入力・タイルのデータから来るので、画面が止まらないように大きさを制限し、超えると例外にする。
式の長さとネストの深さ、regExp() の pattern と照合する文字列の長さに上限がある。
regExp() はさらに、後方参照、量指定子か選択 (|) を中に持つ群の繰り返し ((a+)+ など)、
2 個を超える繰り返しの量指定子 ({4} のような回数の決まったものは数えない)、
選択と省略できる要素の組み合わせが 1024 を超える pattern を受け付けない。
照合する文字列の上限は、照合に時間の掛かる pattern ほど短い (.*x.*y なら 256 文字)。
const style = mapray.Tiles3DStyle.fromJson( {
show: "${bldg:measuredHeight} > 0",
color: { conditions: [
[ "${bldg:measuredHeight} >= 60", "color('red')" ],
[ "true", "color('#8fb7d6')" ],
] },
} );
const { show, color } = style.evaluate( props );
See¶
Methods¶
evaluate()¶
evaluate(
props,state?):Result
フィーチャーのプロパティに対してスタイルを評価する。
式の評価に失敗したとき、show が真偽値でないとき、color が長さ 4 の有限な数値の配列でないときは例外を投げる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
props |
Record<string, Value> |
フィーチャーのプロパティ (名前 → 値)。値は Tiles3DStyle.Value に限る |
state? |
State |
フィーチャー状態 (hover/select 等)。式から (mapray 拡張)。動的ハイライトに使う。例: |
Returns¶
fromJson()¶
staticfromJson(json):Tiles3DStyle
スタイル JSON から Tiles3DStyle を生成する。
描画に適用されるのは color と show だけである。pointSize / meta を含む
スタイルは、それらが描画に使われない旨を 1 度だけ警告する。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
json |
StyleJson |
OGC 3D Tiles Style JSON (show / color / pointSize / meta / defines) |