Cesium绘制可编辑线

Cesium

第一章 绘制可编辑线

Screen-2024-09-17-202059的副本



一、绘制线

1、方法

  //场景相机控制
  viewer.scene.screenSpaceCameraController.enableRotate = false; //cesium相机控制 绘制和编辑时 禁止转动场景
  // 鼠标样式修改
  viewer._container.style.cursor = "crosshair"; //修改鼠标样式 ,精确选择鼠标样式
  //事件监听
  handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); //处理用户输入事件
    
  左键单击 开始绘制 双击绘制结束   
  1、点击事件
  handler.setInputAction((e) => {}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
  2、鼠标移动
  handler.setInputAction((e) => {}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
  3、鼠标双击
  handler.setInputAction((e) => {}, Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);

2、实现

    /* CallbackProperty 动态更新属性 
    * 可以实时地改变实体的状态而不需要频繁地重新设置整个属性
    */
     viewer.entities.add({
      id: generateUUID(),
      polyline: {
        positions: new Cesium.CallbackProperty((e) => {
          return  tempPositions;
        }, false),
        ...style, // style 为 线的样式
      },
    });

二、编辑线

线 是由两个以上点构成的,一条线绘制完成后 可以获取到 线上的 点。通过修改点的位置从而达到更新线的目的

1、找到点的位置 index
2、移动点修改位置

// 编辑 点 实体的坐标
const editPoint = this.viewer.entities.getById(target.id.id);
const position = this.editPoint?.position.getValue();

// selectEntity 为 选中的polyline实体
const polylinePostions = selectEntity._polyline.positions.getValue() // polyline 线上的点坐标

 //监听到鼠标移动后 将新的 坐标位置 赋值给 线上index的点 可实现编辑效果
  polylinePostions[index] = cartesian;
  selectEntity.polyline.positions = new Cesium.CallbackProperty((e) => {
            return polylinePostions;
     },false);

三、使用

const polyline = new Polyline(viewer)

const startDraw = () => {
  polyline.startDraw({ 
    hasEdit: true ,// 是否编辑 默认为false
    style:{} // 线的样式,详细可以参考cesium的api
  )
}

Cesium是一款强大的地图绘制工具,它可以让用户绘制编辑的地图。Cesium提供了丰富的功能和工具,使用户能够创建、编辑和管理地图数据。 首先,Cesium可以通过几何图形绘制功能帮助用户创建各种形状的地图要素,如点、线、面等。用户可以选择绘制点来标记地理位置,绘制线来表示路径或边界,绘制面来描述区域范围等。这些绘制的要素都是可编辑的,用户可以随时修改其位置、形状和样式。 其次,Cesium还支持对地图要素进行编辑和调整。用户可以选择要素并对其进行移动、缩放、旋转等操作,以便精确地调整位置和大小。此外,Cesium还支持切割、合并和变形等高级编辑操作,使用户能够更灵活地处理地图数据。 此外,Cesium还提供了一套完整的编辑工具和功能,帮助用户更方便地编辑地图数据。用户可以选择使用圆形、矩形或自由绘制等工具创建新的要素,也可以使用选择、删除、复制等工具对现有要素进行编辑。同时,Cesium还提供了属性编辑器,允许用户为每个要素设置属性和标签,以便更好地描述和管理地图数据。 总之,Cesium是一个强大的地图绘制工具,它使用户能够轻松创建、编辑和管理可编辑的地图数据。无论是绘制基本要素还是进行高级编辑Cesium都提供了丰富的功能和工具,帮助用户轻松实现各种地图绘制需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值