Cesium 加载海量点 在地形模式下无法贴地

Cesium源码 · WarhammerZuo · 于 4年前 发布 · 7211 次阅读

要求是加载海量点,并且在地形模式下贴地。我目前使用的方法是pointPrimitives加载海量点但无法贴地

var randomCount = 800000;
var pointPrimitives = null;// 申明点渲染集合
pointPrimitives = this.viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection());
while (randomCount--) {
const dd = [3];
dd[0] = 0 + Math.random() * 20
dd[1] = 0 + Math.random() * 20
var position = Cesium.Cartesian3.fromDegrees(dd[0], dd[1]);
pointPrimitives.add({
pixelSize: 5,
color: Cesium.Color['BLUE'],
outlineColor: Cesium.Color.BLACK,
outlineWidth: 0,
position: position
});
}

计算高程这两个的结果都没用无法贴地

var carto=new Cesium.Cartographic.fromDegrees(lon,lat);  //输入经纬度
var h1=viewer.scene.globe.getHeight(carto);
var h2=viewer.scene.sampleHeight(carto);

使用Entity的话是会出现浏览器崩溃的情况,还有什么方法可以加载海量点并贴地了

共收到 1 条回复
Alice#11年前 0 个赞

scene.groundPrimitives.add(

new Cesium.GroundPrimitive({
  geometryInstances: new Cesium.GeometryInstance({
    geometry: 点的Geometry,
    id: "xxx",
  }),
  classificationType: Cesium.ClassificationType.TERRAIN,
})

);

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics