Autodesk Forge3D標注,用戶在該頁面,添加標注信息,記錄下坐標數(shù)據(jù),退出該頁面,等到該用戶下一次進入該頁面,頁面重載的時候,如何顯示出用戶上次標記的信息?
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})設置結束坐標
如何在頁面重載進入的時候,執(zhí)行這方法,繪制自己的坐標點?或者是有其它方式操作?
可以通過 viewer.getState() 獲取 Philippe MarkUp3D 的 Markup 信息,把這個信息記錄到數(shù)據(jù)庫里;之后重載模型后執(zhí)行 viewer.restoreState( viewstate ) 就可以回復了,原因是因為載入 MarkUp3D 擴展后,你的 viewState 會多了一個叫 Markup3D 的屬性,在回復時 MarkUp3D 擴展會去讀取這個屬性將 Markup 回復到畫面上,我的測試代碼如下:
var viewstate = viewer.getState();
viewer.restoreState( viewstate );
數(shù)據(jù)結構:
希望對您有幫助
存: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();
}
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。