このページでは、データセットを地図に追加し、スタイル設定を適用する方法を説明します。
前提条件
先へ進む前に、マップ 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; };
宣言型のスタイル規則を使用する
対象物の属性に基づき宣言的にスタイル規則を設定し、データセット全体に適用できます。一部の対象物を不可視のままにする場合などは、対象物スタイル関数(FeatureStyleFunction)で 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
を返すことも可能です。