1.添加滑鼠點擊事件
//滑鼠單擊左鍵事件 viewer.screenSpaceEventHandler.setInputAction(function onm ouseClick( click ) { //自己需要寫邏輯的地方 },Cesium.ScreenSpaceEventType.LEFT_CLICK);
2.屬性資訊的位置
2.1 viewer.scene.pick(click.position)
var pickedFeature = viewer.scene.pick(click.position);if(Cesium.defined(pickedFeature)){ console.log(pickedFeature); }
Cesium.defined(value) 經常使用,用于判斷object是否define
pickedFeature長這樣: 型別是 Cesium3DTileFeature

自然而然在檔案里去找,找到了getProperty方法

引數name也是就我們需要屬性的名字,對應上一篇隨筆中shp轉3dtile時候shp的屬性名稱
輸出看一下
console.log(pickedFeature.getProperty("name"));

成功
2.2 tileset.tileLoad.addEventListener
Cesium3DTileset中有一個事件:tileLoad

輸出一下tile看看是什么
tileset.tileLoad.addEventListener(function(tile) { console.log(tile); })

里面有個content屬性,截圖沒截出來,輸出看看

看看檔案

注意到有個方法getFeature,回傳值是Cesium3DTileFeature型別,是不是和2.1一樣,那就簡單了

tileset.tileLoad.addEventListener(function(tile) { let featuresLength = content.featuresLength; console.log("要素數量為:"); console.log(featuresLength); console.log("第一個要素屬性為:"); let feature = content.getFeature(0).getProperty("name"); console.log(feature); })

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/541450.html
標籤:其他
