Map Management API 가이드 및 예시

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

단계 요약

  1. Cloud Console을 사용하여 지도 ID 를 만듭니다(JavaScript 벡터 기반 지도로 제한됨).
  2. Cloud Console을 사용하여 지도 스타일 을 만듭니다. 지도 스타일은 지도 ID와 데이터 세트 간의 링크로 사용됩니다.
  3. Cloud Console 또는 지도 데이터 세트 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: 요청이 잘못되었습니다.