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

プラットフォームを選択: Android iOS JavaScript

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

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

前提条件

先へ進む前に、マップ 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;
};

宣言型のスタイル規則を使用する

対象物の属性に基づき宣言的にスタイル規則を設定し、データセット全体に適用できます。一部の対象物を不可視のままにする場合などは、対象物スタイル関数(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.
    ...
};

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

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

Swift

layer.style = nil

Objective-C

layer.style = nil;

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