我使用viewer.getObjectTree = function(onSuccessCallback, onErrorCallback)
获取模型对象树,然后从根节点遍历到所有叶节点。这是代码:
viewer.getObjectTree(function (objTree) {
objTree.enumNodeChildren(
objTree.getRootId(),
function (dbId) {
// Work with dbId
},
true
);
};
但是,它仅适用于3D模型。 2D模型不会跳转到回调事件。如何获得2D布局/绘图的所有对象ID?
答案 0 :(得分:0)
我找到了原因。 2D布局/绘图没有其模型对象树(只是图层)。它使用与3D模型不同的数据结构。 3D使用实例树来获取所有节点,但2D使用一串DbIds。
要在3D模型中导航对象,请使用viewer.getObjectTree
和viewer.model.getData().instanceTree
。
要在2D布局中导航对象,请使用viewer.model.getData()
。我可以从viewer.model.getData().stringDbIds