Map Management API 指南和示例

借助地图管理 API,您可以使用 RESTful API 管理云端地图样式设置资源。

步骤摘要

  1. 使用 Cloud 控制台创建地图 ID(仅限基于 JavaScript 矢量的地图)。
  2. 使用 Cloud 控制台创建地图样式。地图样式用作地图 ID 与数据集之间的关联。
  3. 使用 Cloud 控制台或 Maps Datasets API 创建数据集
  4. 使用 Map Management API 将数据集与样式 ID 相关联。
  5. 在应用(JS、iOS 或 Android)中使用地图 ID,并使用数据驱动型样式 API 设置数据集地图项的样式。

类型

DatasetStyleAssociation

类型:对象/Proto

封装现有数据集与现有客户端样式之间的关系。

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:请求格式有误。