Example:
const viewer = new Ditap.DitapViewer("ditapContainer");
const position1 = new Ditap.Cartesian3.fromDegrees(
126.97759025002786,
37.56679755138474
);
const position2 = new Ditap.Cartesian3.fromDegrees(
126.97764810657144,
37.566518888624664
);
// LinestringEntity instance 생성
const linestringEntity = new Ditap.LinestringEntity(viewer, [
position1,
position2,
]);
const linestringEntityProperty =
{
properties: {
id: "line2",
position1 : position1,
position2 : position2
}
};
// 비동기로 속성값을 요청하는 promise를 반환하는 함수
function getPropertiesPromise(selectedObject) {
// 첫번째 파라미터로 받은 선택된 객체 인스턴스를 활용하여 콜백함수 작성
if (!selectedObject) {
return;
}
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve([
{
title: "newObject",
properties: {
name: "objectName",
content: "objectContent",
},
},
{
title: "newObject2",
properties: {
name: "objectName2",
content: "objectContent2",
},
},
]);
}, 2000);
});
}
const ditapPanelElement = document.createElement("div");
ditapPanelElement.classList.add("ditap-panel");
document.body.append(ditapPanelElement);
const panel = new Ditap.PanelProperty(
{
container: ditapPanelElement,
viewer: viewer,
selectedObject: linestringEntity,
properties: [linestringEntityProperty],
propertyCallback: getPropertiesPromise,
})