在使用 Forge Viewer 加载模型时,将定制标记存储在本地存储中。 例如,设置 localStorage.setItem('markup', JSON.stringify(markupData))。
在加载模型时,检查本地存储中是否存在已保存的标记,并在查看器中加载它们。 例如:
function loadModel() {
const markupDataStr = localStorage.getItem('markup');
if (markupDataStr) {
const markupData = JSON.parse(markupDataStr);
viewer.restoreState(viewState);
viewer.loadExtension('Autodesk.Viewing.MarkupsCore').then((markupCore) => {
markupCore.load(markupData);
});
} else {
viewer.restoreState(viewState);
}
}
这里的 viewer
代表 Autodesk.Viewing.Viewer
实例,viewState
是模型视图的状态(例如相机位置和缩放级别),markupData
是之前保存的标记数据。
在用户进行标记操作时,更新本地存储中已保存的标记数据。 例如:
function onMarkupCreated(event) {
const markupData = markupCore.generateData();
localStorage.setItem('markup', JSON.stringify(markupData));
}
markupCore.addEventListener('MARKUP_CREATED_EVENT', onMarkupCreated);
这里的 markupCore
是 Autodesk.Viewing.MarkupsCore
实例。MARKUP_CREATED_EVENT
是在创建标记时触发的事件。此方法将在用户创建标记时调用,并更新本地存储中保存的标记数据。
通过这些步骤,我们可以在 Autodesk Forge Viewer 上实现定制标记的保存和恢复功能。