지도 관리 API를 사용하면 RESTful API를 사용하여 클라우드 기반 지도 스타일 지정 리소스를 관리할 수 있습니다.
단계 요약
- Cloud 콘솔을 사용하여 지도 ID를 만듭니다(JavaScript 벡터 기반 지도에만 해당).
- Cloud 콘솔을 사용하여 지도 스타일을 만듭니다. 지도 스타일은 지도 ID와 데이터 세트 간의 링크로 사용됩니다.
- Cloud 콘솔 또는 Maps Datasets API를 사용하여 데이터 세트를 만듭니다.
- 지도 관리 API를 사용하여 데이터 세트를 스타일 ID와 연결합니다.
- 애플리케이션 (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: 요청이 잘못되었습니다.