很奇怪cesium 里面只支持 相对路径 不支持绝对路径
我把 模型放在 /***/Cesium-1.128/Apps/SampleData/Cesium3DTiles/Tilesets 下面
"../../SampleData/Cesium3DTiles/Tilesets/terra_b3dms/tileset.json",
所有源码
const viewer = new Cesium.Viewer("cesiumContainer", {shadows: true,
});const viewModel = {height: 0,
};Cesium.knockout.track(viewModel);const toolbar = document.getElementById("toolbar");
Cesium.knockout.applyBindings(viewModel, toolbar);let tileset;
try {tileset = await Cesium.Cesium3DTileset.fromUrl("../../SampleData/Cesium3DTiles/Tilesets/terra_b3dms/tileset.json",);viewer.scene.primitives.add(tileset);viewer.scene.globe.depthTestAgainstTerrain = true;viewer.zoomTo(tileset,new Cesium.HeadingPitchRange(0.0, -0.5, tileset.boundingSphere.radius * 2.0),);
} catch (error) {console.log(`Error loading tileset: ${error}`);
}Cesium.knockout.getObservable(viewModel, "height").subscribe(function (height) {height = Number(height);if (isNaN(height) || !Cesium.defined(tileset)) {return;}const cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center,);const surface = Cesium.Cartesian3.fromRadians(cartographic.longitude,cartographic.latitude,0.0,);const offset = Cesium.Cartesian3.fromRadians(cartographic.longitude,cartographic.latitude,height,);const translation = Cesium.Cartesian3.subtract(offset,surface,new Cesium.Cartesian3(),);tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
});//鼠标显示 位置let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function(event){let ray = viewer.camera.getPickRay(event.position);let cartesian = viewer.scene.globe.pick(ray, viewer.scene);let cartographic = Cesium.Cartographic.fromCartesian(cartesian);let lng = Cesium.Math.toDegrees(cartographic.longitude); // 经度let lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度let alt = cartographic.height; // 高度let coordinate = {longitude: Number(lng.toFixed(6)),latitude: Number(lat.toFixed(6)),altitude: Number(alt.toFixed(2))};console.log(coordinate.longitude);console.log(coordinate.latitude);console.log(coordinate.altitude);//console.log(longitude);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
输出坐标
121.484453
31.361559
0
121.484535
31.361587
0
121.484766
31.361574
0