如何将唯一的数据库ID加载到MarkupCore扩展标记上?

时间:2018-08-23 15:25:26

标签: autodesk-forge autodesk-viewer

我正在使用MarkupsCore扩展来构建基于云的注释系统。我能够成功地将标记单独存储在数据库中,并将它们作为一个完整的SVG字符串加载回去。但是,我对能够删除它们感到困惑。通常,我会将数据库ID附加到标记中,然后将其删除。但是,我不知道在这种情况下该怎么做。我是否可以存储任何唯一的属性,这些属性是标记的一部分,可用于标识它们以将其删除?

此外,是否有特定原因导致MarkupsCore扩展没有创建标记时触发的事件?我本人可以解决此问题,但我很好奇。

1 个答案:

答案 0 :(得分:1)

如果您想绕过标准存储机制(使用MarkupCore扩展名上的generateData()loadMarkups()方法),则可以单独存储数据,然后使用以下方法:

viewer.loadExtension('Autodesk.Viewing.MarkupsCore').then((extension) => {
    const CoreNS = Autodesk.Viewing.Extensions.Markups.Core;
    extension.clear();
    extension.enterEditMode();
    let rect = new CoreNS.MarkupRectangle(123 /* your custom ID */, extension);
    extension.addMarkup(rect);
    rect.setSize({ x: 10, y: 10 }, 100 /* width */, 100 /* height */);
    extension.leaveEditMode();
    console.log('markup data', extension.generateData());
});