Map Management API 指南和示例

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

步骤摘要

  1. 使用 Cloud 控制台创建地图 ID (仅限基于 JavaScript 矢量的地图)。
  2. 使用 Cloud 控制台 创建地图 样式。地图样式用作地图 ID 和数据集之间的链接。
  3. 使用 Cloud 控制台或 Maps 数据集 API 来 创建 数据集
  4. 使用地图管理 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:请求格式有误。