Map Management API 指南和範例

您可以使用 Map Management API,透過 RESTful API 管理雲端式地圖樣式設定資源。

步驟摘要

  1. 使用 Cloud 控制台建立地圖 ID (僅限 JavaScript 向量地圖)。
  2. 使用 Cloud 控制台建立地圖樣式。地圖樣式會做為地圖 ID 和資料集之間的連結。
  3. 使用 Cloud Console 或 Maps Datasets API 建立資料集
  4. 使用 Map Management API 將資料集與樣式 ID 建立關聯。
  5. 在應用程式 (JS、iOS 或 Android) 中使用地圖 ID,並使用資料導向樣式 API 設定資料集特徵的樣式。

類型

DatasetStyleAssociation

類型:物件/Proto

封裝現有資料集與現有 ClientStyle 之間的關係。

message DatasetStyleAssociation {
  option (google.api.resource) = {
    type: "mapstyling.googleapis.com/DatasetStyleAssociation"
    pattern: "projects/{project}/datasets/{dataset}/clientStyles/{client_style}"
    plural: "datasetStyleAssociations",
    singular: "datasetStyleAssociation"
  };

  // Resource name.
  // projects/{project}/datasets/{dataset}/clientStyles/{client_style}
  string name = 1;

  // The resource name of the style.
  // projects/{project}/clientStyles/{client_style}
  string client_style = 2;

方法

CreateDatasetStyleAssociation

  rpc CreateDatasetStyleAssociation(CreateDatasetStyleAssociationRequest)
      returns (DatasetStyleAssociation) {
    option (google.api.http) = {
      post: "/v1/{parent=projects/*/datasets/*}"
      body: "dataset_style_association"
    };
    option (google.api.method_signature) =  parent,dataset_style_association";
  }

ListDatasetStyleAssociations

  rpc ListDatasetStyleAssociations(ListDatasetStyleAssociationsRequest)
      returns (ListDatasetStyleAssociationsResponse) {
    option (google.api.http) = {
      get: "/v1/{parent=projects/*/datasets/*}"
    };
    option (google.api.method_signature) = "parent";
  }

DeleteDatasetStyleAssociation

   rpc DeleteDatasetStyleAssociation(DeleteDatasetStyleAssociationRequest)
      returns (google.protobuf.Empty) {
    option (google.api.http) = {
      post: "/v1/{name=projects/*/datasets/*/clientStyles/*}:delete"
      body: "*"
    };
    option (google.api.method_signature) = "name";
  }

C++ 呼叫範例

建立端點的呼叫範例

<pre>curl --http2 -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <Token>' https://mapmanagement.googleapis.com/v1/projects/<Project_Number>/datasets/{dataset_id} -d '{name: "projects/{project_number}/datasets/{dataset_id}/clientStyles/{style_id}", client_style: "projects/{project_number}/clientStyles/{style_id}" }'</pre>

呼叫清單端點的範例

<pre>curl --http2 -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer <Token>'   https://mapmanagement.googleapis.com/v1/projects/<Project_Number>/datasets/-</pre>

呼叫關聯地圖的範例

<pre>curl --http2 -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer  <Token>' https://mapmanagement.googleapis.com/v1/projects/<Project_Number>/datasets/<dataset-id>/clientStyles/<style_id>:listAssociatedMaps</pre>

刪除端點的呼叫範例

<pre>curl --http2 -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <Token>' https://mapmanagement.googleapis.com/v1/projects/<Project_Number>/datasets/<dataset_id>/clientStyles/<style_id>:delete -d '{"map_ids": ["map-id-1", "map-id-2"]}'</pre>

錯誤

  • PERMISSION_DENIED:這類錯誤一律會詳細說明遭拒的資源存取權。舉例來說,如果提供的專案未啟用 API,就會發生這種情況。

  • ALREADY_EXISTS:在 DatasetStyleAssociation 已存在時,由 Create 呼叫觸發。

  • NOT_FOUND:嘗試存取不存在的資源 (例如樣式、資料集或專案) 時,上述任一方法都會觸發這個錯誤。

  • INVALID_ARGUMENT:要求格式錯誤。