使用 Forge 查找自定义点坐标
Find custom point coordinates with Forge
我使用 Autodesk Forge(node.js、javascript(用过一点)、React(全新!))。
我有一个矩形 3D 对象。每个角都有一个具有真实世界坐标(纬度、经度、z)的点。
这些坐标可以通过查看器中的 属性 面板显示。
我想从代码中访问它们,但我无法在任何地方找到它们。
起初,我以为他们会在:
window.NOP_VIEWER.model.getData().metadata
但什么都没有!
这是我在查看器中看到的图片。因为我可以在 属性 面板中看到它们,所以我应该可以访问它们!
我试过用这个:
window.NOP_VIEWER.model.getBulkProperties('1',
function(properties){console.log(properties);},
function(error){console.log(error);})
它 returns 一个长得惊人的字段名称列表(如果认为就是这样的话)。
当我尝试将它放入变量时,它 returns 'undefined'。所以无论如何我都无法访问里面的内容。
也试过 getProperties() 但我觉得我写的不对,也没用。
我也尝试了 som GET 请求来查找对象属性,但我得到的只是这个:
{
"data": {
"type": "objects",
"objects": [
{
"objectid": 1,
"name": "Model",
"objects": [
{
"objectid": 2691,
"name": "Sols",
"objects": [
{
"objectid": 2692,
"name": "Sol",
"objects": [
{
"objectid": 2693,
"name": "Dalle en béton - 250 mm",
"objects": [
{
"objectid": 2694,
"name": "Sol [236041]"
}
]
}
]
}
]
},
{
"objectid": 2711,
"name": "Modèles génériques",
"objects": [
{
"objectid": 2712,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2713,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2714,
"name": "Point_Georeferencement [236831]"
},
{
"objectid": 2715,
"name": "Point_Georeferencement [236836]"
},
{
"objectid": 2716,
"name": "Point_Georeferencement [236843]"
},
{
"objectid": 2717,
"name": "Point_Georeferencement [236846]"
}
]
}
]
}
]
}
]
}
]
}
}
但我找不到访问点名称或值的方法!
有人可以帮忙吗?
NOP_VIEWER
是一个全局变量,用来访问当前的Viewer。从那里你可以打电话:
.getProperties()
:这需要 1 个 dbId,一种简单的尝试方法是:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
e.dbIdArray.forEach(function (dbId) {
NOP_VIEWER.getProperty(dbId, function (props) {
console.log(props)
})
})
});
.model.getBulkProperties()
:这接收到一个元素数组,并且 return 您指定的属性:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
viewer.model.getBulkProperties(e.dbIdArray, ['RefX', 'RefY'], function (elements) {
elements.forEach(function(element){
console.log(element);
})
})
});
您也可以将它与 .search()
结合使用(see here) or by enumerating leaf nodes。
我使用 Autodesk Forge(node.js、javascript(用过一点)、React(全新!))。 我有一个矩形 3D 对象。每个角都有一个具有真实世界坐标(纬度、经度、z)的点。
这些坐标可以通过查看器中的 属性 面板显示。
我想从代码中访问它们,但我无法在任何地方找到它们。
起初,我以为他们会在:
window.NOP_VIEWER.model.getData().metadata
但什么都没有!
这是我在查看器中看到的图片。因为我可以在 属性 面板中看到它们,所以我应该可以访问它们!
我试过用这个:
window.NOP_VIEWER.model.getBulkProperties('1',
function(properties){console.log(properties);},
function(error){console.log(error);})
它 returns 一个长得惊人的字段名称列表(如果认为就是这样的话)。 当我尝试将它放入变量时,它 returns 'undefined'。所以无论如何我都无法访问里面的内容。
也试过 getProperties() 但我觉得我写的不对,也没用。
我也尝试了 som GET 请求来查找对象属性,但我得到的只是这个:
{
"data": {
"type": "objects",
"objects": [
{
"objectid": 1,
"name": "Model",
"objects": [
{
"objectid": 2691,
"name": "Sols",
"objects": [
{
"objectid": 2692,
"name": "Sol",
"objects": [
{
"objectid": 2693,
"name": "Dalle en béton - 250 mm",
"objects": [
{
"objectid": 2694,
"name": "Sol [236041]"
}
]
}
]
}
]
},
{
"objectid": 2711,
"name": "Modèles génériques",
"objects": [
{
"objectid": 2712,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2713,
"name": "Point_Georeferencement",
"objects": [
{
"objectid": 2714,
"name": "Point_Georeferencement [236831]"
},
{
"objectid": 2715,
"name": "Point_Georeferencement [236836]"
},
{
"objectid": 2716,
"name": "Point_Georeferencement [236843]"
},
{
"objectid": 2717,
"name": "Point_Georeferencement [236846]"
}
]
}
]
}
]
}
]
}
]
}
}
但我找不到访问点名称或值的方法!
有人可以帮忙吗?
NOP_VIEWER
是一个全局变量,用来访问当前的Viewer。从那里你可以打电话:
.getProperties()
:这需要 1 个 dbId,一种简单的尝试方法是:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
e.dbIdArray.forEach(function (dbId) {
NOP_VIEWER.getProperty(dbId, function (props) {
console.log(props)
})
})
});
.model.getBulkProperties()
:这接收到一个元素数组,并且 return 您指定的属性:
NOP_VIEWER.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, function (e) {
viewer.model.getBulkProperties(e.dbIdArray, ['RefX', 'RefY'], function (elements) {
elements.forEach(function(element){
console.log(element);
})
})
});
您也可以将它与 .search()
结合使用(see here) or by enumerating leaf nodes。