Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

객체 집합 렌더링 스냅샷(Render Invocation Object) (V2)

객체 집합의 렌더링 콘텐츠와 데이터 출처 스냅샷을 조회합니다. 상태를 유지하지 않는 API이며 처음의 렌더링 값만 포함합니다. 렌더링 중에 바뀐 값은 이 스냅샷에 반영하지 않습니다.

요청에 버전이 없는 객체 집합 RID와 세션에서 고유한 호출 ID를 지정합니다. 표준 렌더러는 Ontology Manager의 객체 유형 아이콘에서 기본 스타일을 가져옵니다. 지원 가능한 콘텐츠 종류를 capabilities에 전달합니다.

이 엔드포인트는 미리보기 기능이며 언제든 변경되거나 제거될 수 있습니다. 사용하려면 preview=true를 지정합니다.

HTTP 요청

PUT /api/v2/mapRendering/invocationObject/render

작업 식별자는 v2.renderInvocationObject입니다. OAuth2로 호출하는 타사 애플리케이션에는 api:map-read 권한 범위가 필요합니다. 각 요청에 Authorization: Bearer <접근 토큰>을 전달합니다.

경로 매개변수

지정할 경로 매개변수가 없습니다.

쿼리 매개변수

이름자료형필수 여부의미와 조건예시 값
previewboolean선택미리보기 기능 사용을 활성화합니다.true

요청 본문

본문 형식은 RenderInvocationObjectRequest이며 필수입니다.

이름자료형필수 여부의미와 조건예시 값
capabilitiesobject필수클라이언트가 지원하는 렌더링 기능입니다. 지원하는 형식 중 가능한 최적의 형식으로 렌더링 요소를 반환합니다.본문 예시 참조
invocationslist<Invocation>선택

capabilities의 구조

이름자료형필수 여부의미와 조건예시 값
supportedRenderableContentlist<RenderableContentType>선택
supportedRenderableContent의 구조

배열 항목은 RenderableContentType이며 자료형은 enum입니다.

GEOMETRY는 GeometryRenderableContent에 대응하는 기본 도형이며 RASTER_TILES_WEB_MERCATOR는 RasterTilesRenderableContent에 대응하는 Web Mercator(EPSG:3857) 래스터 타일입니다.

허용값: GEOMETRY, RASTER_TILES_WEB_MERCATOR.

invocations의 구조

배열 항목은 Invocation이며 자료형은 object입니다.

Foundry 객체 집합을 어떻게 렌더링할지 지정하는 요청입니다.

이름자료형필수 여부의미와 조건예시 값
idstring필수특정 렌더 함수 호출을 식별하기 위해 클라이언트가 제공하는 값이며 세션 안에서 고유해야 합니다.
sourcingOnlyboolean선택
objectsunion<objectSet>필수Foundry 객체 집합의 참조입니다.
rendererunion<standard>필수객체를 그리는 구성 설정이 포함된 렌더러로 해석할 수 있는 참조입니다.
objects의 구조
분기 objectSet

Foundry 객체 집합의 참조입니다. 버전이 있는 객체 집합은 지원하지 않습니다.

이름자료형필수 여부의미와 조건예시 값
typeenum필수허용값: objectSet.objectSet
objectSetRidstring필수Foundry 객체 집합의 RID입니다.
renderer의 구조
분기 standard

기본 제공 표준 렌더러입니다. Ontology Manager에서 설정한 객체 유형 아이콘을 바탕으로 서비스가 정한 기본 스타일을 적용합니다.

이름자료형필수 여부의미와 조건예시 값
typeenum필수허용값: standard.standard
getany선택

응답

응답 형식은 RenderObjectsResponse입니다.

렌더링 콘텐츠의 모든 도형, 스타일과 데이터 출처 필드는 렌더링 결과를 따릅니다.

개별 오류

오류 이름오류 코드HTTP의미와 조건추가 매개변수
RenderInvocationObjectPermissionDeniedPERMISSION_DENIED403호출 객체를 렌더링할 권한이 없습니다.

요청 예제

FOUNDRY_HOST에는 https://를 제외한 호스트를, FOUNDRY_TOKEN에는 유효한 토큰을 제공합니다. FOUNDRY_OBJECT_SET_RID는 실제로 존재하고 버전이 없는 객체 집합의 RID여야 합니다. 아래의 InvocationOne은 가상 호출 ID이며 세션 안에서 고유한 값을 사용합니다. 기본 렌더러와 GEOMETRY 기능을 요청하는 구성입니다.

cURL

curl -X PUT \
	-H "Content-type: application/json" \
	-H "Authorization: Bearer ${FOUNDRY_TOKEN}" \
	"https://${FOUNDRY_HOST}/api/v2/mapRendering/invocationObject/render?preview=true" \
	-d '{"capabilities":{"supportedRenderableContent":["GEOMETRY"]},"invocations":[{"id":"InvocationOne","sourcingOnly":false,"objects":{"type":"objectSet","objectSetRid":"'"${FOUNDRY_OBJECT_SET_RID}"'"},"renderer":{"type":"standard","get":{}}}]}'

Python

Requests 라이브러리가 필요합니다.

import os
import requests

HOSTNAME = os.environ["FOUNDRY_HOST"]
TOKEN = os.environ["FOUNDRY_TOKEN"]
headers = {
    "content-type": "application/json",
    "authorization": "Bearer {}".format(TOKEN)
}
request_body = {
    "capabilities": {
        "supportedRenderableContent": [
            "GEOMETRY"
        ]
    },
    "invocations": [
        {
            "id": "InvocationOne",
            "sourcingOnly": False,
            "objects": {
                "type": "objectSet",
                "objectSetRid": os.environ["FOUNDRY_OBJECT_SET_RID"]
            },
            "renderer": {
                "type": "standard",
                "get": {}
            }
        }
    ]
}

response = requests.put('https://{}/api/v2/mapRendering/invocationObject/render?preview=true'.format(HOSTNAME), headers=headers, json=request_body)
print(response)

Java

Apache HttpClient 4.5 API를 사용하며 파일 이름은 RenderInvocationObjectExample.java입니다.

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;

public class RenderInvocationObjectExample {
    public static void main(String[] args) throws Exception {
        String HOSTNAME = System.getenv("FOUNDRY_HOST");
        String TOKEN = System.getenv("FOUNDRY_TOKEN");

        try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
            HttpPut request = new HttpPut("https://" + HOSTNAME + "/api/v2/mapRendering/invocationObject/render?preview=true");
            request.addHeader("content-type", "application/json");
            request.addHeader("authorization", String.format("Bearer %s", TOKEN));
            request.setEntity(new StringEntity("{\"capabilities\":{\"supportedRenderableContent\":[\"GEOMETRY\"]},\"invocations\":[{\"id\":\"InvocationOne\",\"sourcingOnly\":false,\"objects\":{\"type\":\"objectSet\",\"objectSetRid\":\"" + System.getenv("FOUNDRY_OBJECT_SET_RID") + "\"},\"renderer\":{\"type\":\"standard\",\"get\":{}}}]}", ContentType.APPLICATION_JSON));
            try (CloseableHttpResponse response = httpClient.execute(request)) {
                System.out.println(response);
            }
        }
    }
}

JavaScript

fetch가 제공되는 Node.js에서 사용합니다. 서비스 사용자 토큰을 브라우저로 전달하지 않습니다.

const HOSTNAME = process.env.FOUNDRY_HOST;
const TOKEN = process.env.FOUNDRY_TOKEN;

fetch(`https://${HOSTNAME}/api/v2/mapRendering/invocationObject/render?preview=true`, {
    method: 'PUT',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${TOKEN}`,
    },
    body: JSON.stringify({"capabilities":{"supportedRenderableContent":["GEOMETRY"]},"invocations":[{"id":"InvocationOne","sourcingOnly":false,"objects":{"type":"objectSet","objectSetRid":process.env.FOUNDRY_OBJECT_SET_RID},"renderer":{"type":"standard","get":{}}}]})
}).then((response) => {
    console.log(response)
});

PowerShell

오류가 발생하면 스크립트를 중단합니다.

$ErrorActionPreference = 'Stop'
$TOKEN = $env:FOUNDRY_TOKEN
$HOSTNAME = $env:FOUNDRY_HOST

$headers = @{
    "authorization" = "Bearer $TOKEN"
}

$response = Invoke-WebRequest -Uri "https://$HOSTNAME/api/v2/mapRendering/invocationObject/render?preview=true" `
	-Method Put `
	-Headers $headers `
	-ContentType application/json `
	-Body "{`"capabilities`":{`"supportedRenderableContent`":[`"GEOMETRY`"]},`"invocations`":[{`"id`":`"InvocationOne`",`"sourcingOnly`":false,`"objects`":{`"type`":`"objectSet`",`"objectSetRid`":`"${env:FOUNDRY_OBJECT_SET_RID}`"},`"renderer`":{`"type`":`"standard`",`"get`":{}}}]}"

$response.content