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è)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。