式
任意のlayout property、Paint Property、またはFilterの値を_式_として定義することができます。
式は、以下に記載した_演算子_を使用してプロパティの値を計算するための公式を定義します。Mapbox GLが提供する演算子には、次のものが含まれます:
- 数値に対して算術演算や他の操作を行う数学演算子_
- ブール値を操作し、条件付き決定を行うための論理演算子
- 文字列を操作するための文字列演算子
- ソースフィーチャーのプロパティにアクセスするためのデータ演算子
- 現在のマップビューを定義するパラメーターにアクセスするためのカメラ演算子
式はJSON配列として表されます。式配列の最初の要素は、式演算子の名前を示す文字列です。例えば "*"
や "case"
です。その後に続く要素(もしあれば)は、式に対する_引数_です。各引数は、リテラル値(文字列、数値、ブール値、または null
)、または別の式配列です。
[expression_name, argument_0, argument_1, ...]
データプロパティとズームレベルに基づいてカスタムデータをスタイル設定する方法を学びましょう。
データ式
データ式は、フィーチャーデータにアクセスする式のことを指します。つまり、データ演算子を使用する式です:get
, has
, id
, geometry-type
, properties
, または feature-state
. データ式はフィーチャーのプロパティや状態によってその外見を決定します。同じレイヤー内のフィーチャーを区別したり、データ視覚化を行うのに使用できます。
{
"circle-color": [
"rgb",
// feature.properties.temperature が高いと赤が高くなります
["get", "temperature"],
// 緑は常にゼロ
0,
// feature.properties.temperature が低いと青が高くなります
["-", 100, ["get", "temperature"]]
]
}
この例では、get
演算子を使用して各フィーチャーの temperature
値を取得しています。その値は、赤、緑、青の成分で色を定義するための rgb
演算子の引数を計算するために使用されます。
データ式は filter
プロパティの値として、そしてほとんどのペイントおよびレイアウトプロパティの値として使用することができます。ただし、一部のペイントおよびレイアウトプロパティはデータ式をまだサポートしていません。各プロパティに対する "SDKサポート" 表の "データ駆動のスタイリング" 行にサポートのレベルが示されています。feature-state
演算子を含むデータ式は、ペイントプロパティにのみ使用できます。
カメラ式
カメラ式は、zoom
演算子を使用する式のことを指します。これらの式は、マップのズームレベルに応じてレイヤーの外見を変更します。カメラ式を使用して、深みのある外見を作成したり、データの密度をコントロールしたりできます。
{
"circle-radius": [
"interpolate", ["linear"], ["zoom"],
// ズームが5以下の場合 -> サークルの半径は1px
5, 1,
// ズームが10以上の場合 -> サークルの半径は5px
10, 5
]
}