已知起点和终点,用Cesium的内插算法,间隔0.1米内插平面坐标,再根据地形获取高程
//内插
var geodesic = new Cesium.EllipsoidGeodesic();
var sp = new Cesium.Catographic(lon,lat,0);//弧度制
var ep = new Cesium.Catographic(lon,lat,0);
geodesic, setEndPoints(sp, ep);
var res = geodesic.interpolateUsingSurfaceDistance(0.1,new Cesium.Catographic());
地形高程获取看这个:https://cesiumjs.org/Cesium/Build/Documentation/sampleTerrain.html?classFilter=sample
你这个应该是某项资源加载超时了,比如图片、js、css,可能的原因是,对应的文件不存在或者路径不对
pak是sqlite格式,不能直接加载,需要一个分发服务,比如cesiumlab就可以直接把pak 发布为cesium标准地形服务
二维纹理是平面的,即使是一辆汽车这样的立体模型,也只是表面贴的图。三维纹理是三维立体的。举个例子,如果你要描述一块石头,从表面到内部所有的情况,可以使用三维纹理。
要想做这样效果,需要很多shader的内容。如果不用shader三角网根据摄像机位置上的透明度,不好展示体内部的情况。
你可以理解为:
var tileset = new Cesium.Cesium3DTileset({ url: '../data/3dtiles.json';
viewer.scene.primitives.add(tileset);
Cesium.IonResource.fromAssetId(3839) 只是在线的官方资源,直接id获取
https://cesiumjs.org/tutorials/Cesium-Workshop/
var viewer = new Cesium.Viewer('cesiumContainer', {
scene3DOnly: true,
selectionIndicator: false,
baseLayerPicker: false
});
相关配置: http://cesiumcn.org/docs/Viewer.html?classFilter=viewer