概要
同じ GMSFeatureType
のすべての対象物のコレクションを表すクラスで、そのスタイルはクライアントでオーバーライドできます。
各 GMSFeatureType
には、対応する GMSFeatureLayer
が 1 つあります。
公開メンバー関数 | |
(instancetype) | - initWithFeatureType: |
テスト用に対象物レイヤのインスタンスを作成します。 | |
プロパティ | |
GMSFeatureType | featureType |
このレイヤに関連付けられている対象物タイプ。 | |
BOOL | 利用可能 |
データドリブンの GMSFeatureLayer が使用可能かどうかを確認します。 | |
GMSFeatureStyle *_Nullable(^)(T) | スタイル |
このレイヤ内のすべての対象物に適用されるスタイル設定ブロック。 |
メンバー関数のドキュメント
-(instancetype)initWithFeatureType: | (GMSFeatureType) | featureType |
テスト用に対象物レイヤのインスタンスを作成します。
このメソッドは単体テストにのみ使用してください。本番環境では、GMSFeatureLayer
インスタンスは SDK によってのみ作成する必要があります。
プロパティのドキュメント
-(GMSFeatureType)featureType [read, assign] |
このレイヤに関連付けられている対象物タイプ。
レイヤに関連付けられているすべての対象物がこのタイプになります。
- (BOOL)利用可能 [read, assign] |
データドリブンの GMSFeatureLayer
が使用可能かどうかを確認します。
データドリブンのスタイル設定には、Metal Framework、有効なマップ ID、対象物タイプが適用されていることが必要です。NO
の場合、GMSFeatureLayer
のスタイルはデフォルトに戻り、イベントはトリガーされません。
- (GMSFeatureStyle* _Nullable(^ style)(T)) [read, write, assign] |
このレイヤ内のすべての対象物に適用されるスタイル設定ブロック。
スタイル ブロックは、セッターが呼び出されるとビューポートにあるすべての対象物に適用され、後続の対象物がビューポートに入る際に複数回実行されます。
この関数は決定論的であり、地図タイルに適用したときに一貫した結果を返す必要があります。対象物のスタイル設定が変更される場合は、style
を再度設定する必要があります。style
セッターを呼び出さずにスタイル ブロックの動作を変更すると、地図のレンダリングが古くなったり、壊れたりするなど、未定義の動作が発生します。下記の例をご覧ください。
{.swift} var selectedPlaceIDs = Set<String>() var style = FeatureStyle(fill: .red, stroke: .clear, strokeWidth: 0) layer.style = { feature in selectedPlaceIDs.contains(feature.placeID) ? style : nil } selectedPlaceIDs.insert("foo") style = FeatureStyle(fill: .clear, stroke: .blue, strokeWidth: 1.5) layer.style = { feature in selectedPlaceIDs.contains(feature.placeID) ? style : nil }