データセットを地図に追加する

このページでは、データセットを地図に追加し、スタイル設定を適用する方法を説明します。

データセット対象物にスタイル設定を適用します。

前提条件

先へ進む前に、マップ ID、地図スタイル、データセット ID を用意しましょう。

データセット ID を地図スタイルと関連付ける

データセット内の対象物のスタイルを設定するには、地図のデータセット対象物レイヤにスタイル関数を適用します。データセット対象物レイヤは、データセットを地図のスタイルに関連付けると作成されます。

作成しておいたデータセットを使用する地図スタイルと関連付けましょう。手順は次のとおりです。

  1. Google Cloud コンソールで、[データセット] ページに移動します。
  2. 目的のデータセットの名前をクリックします。[データセットの詳細] ページが表示されます。
  3. [プレビュー] タブをクリックします。
  4. [関連付けられている地図のスタイル] で、[地図スタイルを追加] をクリックします。
    [地図スタイルを追加] ボタンのスクリーンショット。
  5. 関連付ける地図スタイル(複数可)のチェックボックスをオンにして、[保存] をクリックします。

データセットにスタイルを適用する

データセット レイヤの対象物をスタイル設定するには、スタイル属性を定義するスタイリング クロージャを使用します。このクロージャは、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.
    ...
};

レイヤからスタイル設定を削除する

レイヤからスタイル設定を削除するには、次のように stylenull に設定します。

Swift

layer.style = nil

Objective-C

layer.style = nil;

一部の対象物を不可視のままにする場合などは、対象物スタイル関数(FeatureStyleFunction)で nil を返すことも可能です。