【Cesium入门教程】第七课:Primitive图元

Cesium丰富的空间数据可视化API分为两部分:primitive API面向三维图形开发者,更底层一些。

Entity API是数据驱动更高级一些。

javascript 复制代码
// entity
// 调用方便,封装完美
// 是基于primitive的封装

// primitive
// 更接近底层
// 可以绘制高级图形
// 由Geometry(几何形状)、(Appearance)外观组成
javascript 复制代码
const primitive = new Cesium.Primitive({
  geometryInstances: new Cesium.GeometryInstance({
    geometry: new Cesium.EllipseGeometry({
      center: Cesium.Cartesian3.fromDegrees(-100.0, 20.0),
      semiMinorAxis: 500000.0,
      semiMajorAxis: 1000000.0,
      rotation: Cesium.Math.PI_OVER_FOUR,
      vertexFormat: Cesium.VertexFormat.POSITION_AND_ST
    }),
  }),
  appearance: new Cesium.EllipsoidSurfaceAppearance({
    material: Cesium.Material.fromType('Stripe')
  })
})
viewer.scene.primitives.add(primitive);

组合图形

javascript 复制代码
<h1 id="m7WFT">组合图形</h1>
```javascript
const rectangleInstance = new Cesium.GeometryInstance({
  geometry: new Cesium.RectangleGeometry({
    rectangle: Cesium.Rectangle.fromDegrees(-140.0, 30.0, -100.0, 40.0),
    vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
  }),
  id: 'rectangle',
  attributes: {
    color: new Cesium.ColorGeometryInstanceAttribute(0.0, 1.0, 1.0, 0.5)
  }
});

const ellipsoidInstance = new Cesium.GeometryInstance({
  geometry: new Cesium.EllipsoidGeometry({
    radii: new Cesium.Cartesian3(500000.0, 500000.0, 1000000.0),
    vertexFormat: Cesium.VertexFormat.POSITION_AND_NORMAL
  }),
  modelMatrix: Cesium.Matrix4.multiplyByTranslation(Cesium.Transforms.eastNorthUpToFixedFrame(
    Cesium.Cartesian3.fromDegrees(-95.59777, 40.03883)), new Cesium.Cartesian3(0.0, 0.0, 500000.0), new Cesium.Matrix4()),
  id: 'ellipsoid',
  attributes: {
    color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.AQUA)
  }
});

viewer.scene.primitives.add(new Cesium.Primitive({
  geometryInstances: [rectangleInstance, ellipsoidInstance],
  appearance: new Cesium.PerInstanceColorAppearance()
}));

点击事件

javascript 复制代码
<h1 id="qr6o4">点击事件:</h1>
<h3 id="XXD1c">添加地形图层后去画点</h3>
```javascript
let viewer = new Cesium.Viewer('cesiumContainer', {
  terrainProvider: Cesium.createWorldTerrain()
})

let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction((event) => {
  //返回一个笛卡尔坐标
  let position = viewer.scene.pickPosition(event.position);
  //如果有这个坐标
  if (Cesium.defined(position)) {
    console.log(position)
    viewer.entities.add({
      position: position,
      point: {
        color: Cesium.Color.BLUE,
        pixelSize: 20,
      },
    })
    console.log(viewer.entities)
  }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

事件注销

javascript 复制代码
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)//移除左键点击事件

申明变量

javascript 复制代码
let pickModel

鼠标移动事件

javascript 复制代码
//添加建筑物
const city = viewer.scene.primitives.add(
    new Cesium.Cesium3DTileset({
        url: Cesium.IonResource.fromAssetId(75343),
    })
);
viewer.flyTo(city)

let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction((event) => {
    //拾取模型
    const pick = viewer.scene.pick(event.endPosition);
    if (pick) {
        if (pickModel) {
            pickModel.color = Cesium.Color.WHITE;
        }
        pick.color = Cesium.Color.ORANGERED;
        pickModel = pick;
    }
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

注销事件

javascript 复制代码
handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK)//移除左键点击事件
相关推荐
Highcharts.js8 小时前
用Highcharts开发动态主从图表|双图联动的时间序列图表示例
javascript·数据库·信息可视化·highcharts·图表开发·动态图表
智圣新创011 天前
锚定省级示范高职育人评价核验要求 第二课堂数字化落地全场景高频答疑
信息可视化·数据挖掘·数据分析
计算机毕业设计杰瑞2 天前
【2027大数据精品毕设】基于大数据的高频电力消耗数据可视化与分析,附源码_数据可视化_数据分析_毕设选题_开题ppt_大数据项目_文档指导
大数据·信息可视化·课程设计
Software攻城狮2 天前
【cesium 扩展 —— 天地图】
信息可视化
珠海西格电力3 天前
AI预测与优化:基于机器学习的负荷预测与调度策略
大数据·人工智能·机器学习·信息可视化·架构·能源
计算机毕业设计杰瑞4 天前
【精品大数据项目】基于大数据的药品多维度属性分析与可视化的设计与实现,附源码_数据可视化_数据分析_毕设选题推荐_SPark_Hadoop_文档指导ppt
大数据·信息可视化·数据分析
科创致远5 天前
科创致远 ESD 静电监控系统实景效果展示
信息可视化
weixin_440401695 天前
质朴的可视化绘图+pyecharts
开发语言·python·信息可视化·pyecharts
计算机毕业设计杰瑞5 天前
【最新原创大数据】基于大数据的酒店数据分析与可视化,附源码_高质量项目_可视化_数据分析_毕设选题推荐_SPark_Hadoop_毕设指导
大数据·信息可视化·数据挖掘·课程设计
计算机毕业设计杰瑞5 天前
【2027最新精品大数据】基于大数据的全国各地景点指数数据可视化分析,附源码_高质量项目_可视化_数据分析_毕设选题推荐_SPark_Hadoop_毕设指导
大数据·信息可视化·数据分析