このページでは、データセットを地図に追加し、スタイル設定を適用する方法を説明します。
前提条件
先へ進む前に、マップ ID、地図スタイル、データセット ID を用意しましょう。
データセット ID を地図スタイルと関連付ける
データセット内の対象物のスタイルを設定するには、地図のデータセット対象物レイヤにスタイル関数を適用します。データセット対象物レイヤは、データセットを地図のスタイルに関連付けると作成されます。
作成しておいたデータセットを使用する地図スタイルと関連付けましょう。手順は次のとおりです。
- Google Cloud コンソールで、[データセット] ページに移動します。
- 目的のデータセットの名前をクリックします。[データセットの詳細] ページが表示されます。
- [プレビュー] タブをクリックします。
- [関連付けられている地図のスタイル] で、[地図スタイルを追加] をクリックします。
- 関連付ける地図スタイル(複数可)のチェックボックスをオンにして、[保存] をクリックします。
データセットにスタイルを適用する
データセット レイヤの対象物をスタイル設定するには、スタイル属性を定義するスタイリング クロージャを使用します。このクロージャは、GMSDatasetFeature
を受け取り、GMSFeatureStyle
を返します。次に、スタイル プロパティを、スタイル ロジックを含むスタイル クロージャに設定します。
スタイル クロージャは決定論的であり、適用時に一貫した結果を返す必要があります。対象物のスタイル設定が変更された場合は、スタイルを再度適用する必要があります。
ストローク、塗りつぶし、ポイントの半径を設定する
スタイル ファクトリ関数で対象物をスタイル設定する場合、次の設定が可能です。
UIColor
クラスで定義された枠線のストロークの色と不透明度。デフォルト値は透明(UIColor.clearColor
)です。枠線のストローク幅(画面ピクセル)。デフォルト値は 2 です。
UIColor
クラスで定義されている塗りつぶしの色と不透明度。デフォルト値は透明(UIColor.clearColor
)です。対象物のポイントの半径(0 ~ 128 ピクセル)。
単純なスタイル規則を使用する
対象物をスタイル設定する最も簡単な方法は、色、不透明度、ラインの幅などの一定のスタイル属性を定義することです。対象物のスタイル オプションは、データセット対象物レイヤに直接適用することも、カスタム スタイルと組み合わせて使用することもできます。
Swift
let mapView = GMSMapView(frame: .zero, mapID: GMSMapID(identifier: "YOUR_MAP_ID"), camera: GMSCameraPosition(latitude: 40.7, longitude: -74.0, zoom: 12)) let layer = mapView.datasetFeatureLayer(of: "YOUR_DATASET_ID") // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = { feature in let style = MutableFeatureStyle() style.fillColor = .green.withAlphaComponent(0.1) style.strokeColor = .green style.strokeWidth = 2.0 return style }
Objective-C
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero mapID:[GMSMapID mapIDWithIdentifier:@"MAP_ID"] camera:[GMSCameraPosition cameraWithLatitude: 40.7 longitude: -74.0 zoom:12]]; GMSDatasetFeatureLayer *layer = [mapView datasetFeatureLayerOfDatasetID:@"YOUR_DATASET_ID"]; // Define a style with green fill and stroke. // Apply the style to all features in the dataset. layer.style = ^(GMSDatasetFeature *feature) { GMSMutableFeatureStyle *style = [GMSMutableFeatureStyle style]; style.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.1]; style.strokeColor = [UIColor greenColor]; style.strokeWidth = 2.0; return style; };
宣言型のスタイル規則を使用する
スタイルルールは、対象物の属性に基づいて宣言的に設定し、データセット全体に適用できます。たとえば、一部の対象物を不可視のままにする場合、対象物スタイル関数から nil
を返すことができます。
たとえば、GMSDatasetFeature.datasetAttributes
を使用すると、特徴のデータセット属性の値が返されます。その属性に基づいて、対象物のスタイルをカスタマイズできます。
この例では、データセットの各対象物の「highlightColor」属性の値を特定して、スタイルを制御します。
Swift
layer.style = { feature in var attributeColor: String = feature.datasetAttributes["highlightColor"] // Conditionalize styling based on the value of the "highlightColor" attribute. ... }
Objective-C
// Apply the style to a single dataset feature. layer.style = ^(GMSDatasetFeature *feature) { NSString *attributeColor = feature.datasetAttributes[@"highlightColor"]; // Conditionalize styling based on the value of the "highlightColor" attribute. ... };
レイヤからスタイル設定を削除する
レイヤからスタイル設定を削除するには、次のように style
を null
に設定します。
Swift
layer.style = nil
Objective-C
layer.style = nil;
一部の対象物を不可視のままにする場合などは、対象物スタイル関数(FeatureStyleFunction)で nil
を返すことも可能です。