当前位置: 首页 > news >正文

Cesium绘制可编辑线

Cesium

第一章 绘制可编辑线

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


文章目录

  • Cesium
  • 一、绘制线
  • 二、编辑线
  • 三、使用


一、绘制线

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 ,// 是否编辑 默认为falsestyle:{} // 线的样式,详细可以参考cesium的api)
}

提示:完整实现方式 99元 付费获取(实现不易,感谢支持)私信联系 看到回


http://www.mrgr.cn/news/29010.html

相关文章:

  • 为什么海外服务器IP会被封
  • Redis HyperLogLog
  • Visual Studio 2022 安装
  • 供应SW6301V单C口多协议升降压移动电源IC
  • 6.584-Lab1:MapReduce
  • C#版使用融合通信API发送手机短信息
  • Zabbix的安装与基本使用(主机群组、应用集、监控项、触发器、动作、媒介)
  • 【Android】Handler用法及原理解析
  • 实时数仓3.0DWD层
  • Python 入门教程(3)基础知识 | 3.5、运算符
  • rhat Linux虚拟机桥接网络配置
  • 【Linux】理解和解释shell命令的工具
  • phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)
  • Visual Studio 2019/2022 IntelliCode(AI辅助IntelliSense)功能介绍
  • MOE论文汇总2
  • java实现常见的密钥派生函数(KDF)
  • 传知代码-KAN卷积:医学图像分割新前沿
  • Typora安装,使用,图片加载全流程
  • 算法训练——day13哈希Map、Set、Bucket
  • vivado中选中bd文件后generate output product是什么用,create HDL wrapper是什么用
  • Apache Airflow
  • 枚举类题目练习心得
  • 介绍⼀下泛型擦除
  • 数据结构_1、基本概念
  • 强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法
  • 《C++虚函数调用开销大揭秘:性能与灵活性的权衡》