Map Management API 가이드 및 예시

지도 관리 API를 사용하면 RESTful API를 사용하여 클라우드 기반 지도 스타일 지정 리소스를 관리할 수 있습니다.

단계 요약

  1. Cloud 콘솔을 사용하여 지도 ID를 만듭니다(JavaScript 벡터 기반 지도에만 해당).
  2. Cloud 콘솔을 사용하여 지도 스타일을 만듭니다. 지도 스타일은 지도 ID와 데이터 세트 간의 링크로 사용됩니다.
  3. Cloud 콘솔 또는 Maps Datasets API를 사용하여 데이터 세트를 만듭니다.
  4. 지도 관리 API를 사용하여 데이터 세트를 스타일 ID와 연결합니다.
  5. 애플리케이션 (JS, iOS 또는 Android)에서 지도 ID를 사용하고 데이터 기반 스타일 지정 API를 사용하여 데이터 세트 지형지물의 스타일을 지정합니다.

유형

DatasetStyleAssociation

유형: 객체/프로토

기존 데이터 세트와 기존 클라이언트 스타일 간의 관계를 캡슐화합니다.

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: 요청이 잘못되었습니다.