Autodesk Forge Markup3D标注,如何把上次添加的标注信息,下次进入该模型后显示

Autodesk Forge3D标注,用户在该页面,添加标注信息,记录下坐标数据,退出该页面,等到该用户下一次进入该页面,页面重载的时候,如何显示出用户上次标记的信息?

https://github.com/Autodesk-F...,用的是这个扩展包。

Markup3D.PinPoint.js:

constructor(viewer, worldPoint) {

    ......


    this.activateLock3d(viewer);

    this.setWorldPoint(worldPoint);


    this.timeoutId = 0;

  }

setWorldPoint({"x":32.04636390620801,"y":218.75012207031264,"z":13.843699405939578})为设置开始坐标


Markup3D.Label.js:


onMouseMove (event) {


    if (this.parent.dragging) {


      this.parent.setLeaderEndPoint({

        x: event.clientX,

        y: event.clientY

      })

    }

  }

setLeaderEndPoint({"x":800, "y":500})设置结束坐标


如何在页面重载进入的时候,执行这方法,绘制自己的坐标点?或者是有其它方式操作?


Helenr
浏览 1134回答 2
2回答

幕布斯6054654

可以通过 viewer.getState() 获取 Philippe MarkUp3D 的 Markup 信息,把这个信息记录到数据库里;之后重载模型后执行 viewer.restoreState( viewstate ) 就可以回复了,原因是因为载入 MarkUp3D 扩展后,你的 viewState 会多了一个叫 Markup3D 的属性,在回复时 MarkUp3D 扩展会去读取这个属性将 Markup 回复到画面上,我的测试代码如下:var viewstate = viewer.getState();viewer.restoreState( viewstate );数据结构:希望对您有帮助

慕勒3428872

存:var info = viewer.getState();        var str = JSON.stringify(info);        document.inputForm.elements["markup"].value = str;        没有问题。为什么恢复的时候 无效果:function onDocumentLoadSuccess(doc) {        // A document contains references to 3D and 2D viewables.        viewables = Autodesk.Viewing.Document.getSubItemsWithProperties(doc.getRootItem(), {'type':'geometry'}, true);        if (viewables.length === 0){            console.error('Document contains no viewables.');            return;        }        // Choose any of the avialble viewables        var initialViewable = viewables[0];        var svfUrl = doc.getViewablePath(initialViewable);        var modelOptions = {            sharedPropertyDbPath: doc.getPropertyDbPath()        };                var viewerDiv = document.getElementById('MyViewerDiv');        viewer = new Autodesk.Viewing.Private.GuiViewer3D(viewerDiv,{            extensions: ['Autodesk.ADN.Viewing.Extension.BasicES2015','Viewing.Extension.Markup3D']        });        /**        ,'Autodesk.Viewing.MarkupsGui' //2D标记        ,'Autodesk.ADN.Viewing.Extension.PropertyListPanel' //属性菜单        ,'Autodesk.ADN.Viewing.Extension.Material'        ,'Viewing.Extension.Markup3D' //3D标记        ,'Autodesk.Billboard',        ,'Autodesk.MyBillboardGui'        */        var errorCode = viewer.start();        // Check for initialization errors.        if (errorCode) {            console.error('viewer.start() error - errorCode:' + errorCode);            return;        }        // Choose any of the available viewables.        indexViewable = 0;        lmvDoc = doc;        var markup = ${markup};        alert(markup);        if (markup!=null && markup != ""){               viewer.restoreState(markup);        // Everything is set up, load the model.        loadModel();    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript