如何将唯一的数据库 ID 加载到 MarkupCore 扩展标记中?
How can I load a unique database ID onto a MarkupCore extension markup?
我正在使用 MarkupsCore 扩展来构建基于云的注释系统。我能够成功地将标记单独存储在数据库中,并将它们作为一个完整的 SVG 字符串加载回来。但是,我对能够删除它们感到困惑。通常,我会将数据库 ID 附加到标记中,然后将其删除。但是,我不知道在这种情况下我会怎么做。是否有任何我可以存储的唯一属性,这些属性是标记的一部分,用于标识它们以用于删除它们?
此外,MarkupsCore 扩展没有创建标记时触发的事件是否有特殊原因?我能够自己解决这个问题,但我只是好奇。
如果您想绕过标准存储机制(在 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());
});
我正在使用 MarkupsCore 扩展来构建基于云的注释系统。我能够成功地将标记单独存储在数据库中,并将它们作为一个完整的 SVG 字符串加载回来。但是,我对能够删除它们感到困惑。通常,我会将数据库 ID 附加到标记中,然后将其删除。但是,我不知道在这种情况下我会怎么做。是否有任何我可以存储的唯一属性,这些属性是标记的一部分,用于标识它们以用于删除它们?
此外,MarkupsCore 扩展没有创建标记时触发的事件是否有特殊原因?我能够自己解决这个问题,但我只是好奇。
如果您想绕过标准存储机制(在 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());
});