從3DTileset 對(duì)象獲取Cesium3DTileFeature?的過(guò)程,和逆向操作(基礎(chǔ)篇)

我們加載一個(gè)3DTileset?到地圖里面了,怎樣獲取這個(gè)3DTileset?對(duì)象下面的feature呢。比如獲取某個(gè)房屋的構(gòu)件“窗子”

1,通過(guò)點(diǎn)擊事件獲取

viewer.screenSpaceEventHandler.setInputAction(function?onLeftClick(

????????movement

??????)?{

????????var?pickedFeature=?viewer.scene.pick(movement.position);

},

??????Cesium.ScreenSpaceEventType.LEFT_CLICK);

2,通過(guò)對(duì)3DTileset?對(duì)象添加監(jiān)聽(tīng)和回調(diào)函數(shù)獲取

function processContentFeatures(content, callback) {

? var featuresLength = content.featuresLength;

? for (var i = 0; i < featuresLength; ++i) {

? ? var feature = content.getFeature(i);

? ? callback(feature);

? }

}

function processTileFeatures(tile, callback) {

? var content = tile.content;

? var innerContents = content.innerContents;

? if (Cesium.defined(innerContents)) {

? ? var length = innerContents.length;

? ? for (var i = 0; i < length; ++i) {

? ? ? processContentFeatures(innerContents[i], callback);

? ? }

? } else {

? ? processContentFeatures(content, callback);

? }

}

tileset.tileLoad.addEventListener(function (tile) {

? processTileFeatures(tile, function(data){

console.log(data)

});

});

tileset.tileUnload.addEventListener(function (tile) {

? processTileFeatures(tile, unloadFeature);

});


3,通過(guò)tileset?tileVisible監(jiān)聽(tīng)獲取?feature

? ? ?tileset.tileVisible.addEventListener(function(tile) {?

? ? ?var content = tile.content;

? ? ? ?var featuresLength = content.featuresLength;?

? ? ? for (var i = 0; i < featuresLength; i++) {?

? ? ? ? let??feature =content.getFeature(i)

? ? ? }? ?

?});

4,通過(guò) _selectedTiles對(duì)象獲取被選中的featrue

var tiles=tileset._selectedTiles

for(let i=0;i<tiles.length;i++){

let tile = tiles[i];

var content = tile.content;

var featuresLength = content.featuresLength;

for (var j = 0; j < featuresLength; j++) {

let feature =content.getFeature(j) console.log( feature)

} }

5,從Cesium3DTileFeature里獲取Cesium3DTileset?

pickedFeature.tileset

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容