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

Cesium 绘制可编辑点

Cesium Point点

实现可编辑的pointEntity 实体
在这里插入图片描述


文章目录

  • Cesium Point点
  • 前言
  • 一、使用步骤
  • 二、使用方法
  • 二、具体实现
    • 1. 开始绘制
    • 2.绘制事件监听
  • 三、 完整代码


前言

支持 鼠标按下 拖动修改点,释放修改完成。


一、使用步骤

1、点击 按钮 开始 绘制,单击地图 绘制完成
2、编辑状态下(hasEdit = true)拖动修改位置,释放完成修改。
2、传入 hasEdit:true 绘制完成后自动激活编辑。默认为false
3、可以取消编辑、激活编辑

二、使用方法

引入

import Point from "@/utils/cesium/point";const point = new Point(map)point.startDraw({// hasEdit: true,style: {pixelSize: 10,color: Cesium.Color.RED,outlineColor: Cesium.Color.WHITE,outlineWidth: 2,}})
// 编辑状态控制point.hasEdit = [boolean]

二、具体实现

主要是对 ccesium 事件监听的灵活使用

1. 开始绘制

代码如下(示例):

  startDraw(options: PolylineOptions) {this.clear();this.style = options.style;if (options.hasEdit) {this.enableEdit = options.hasEdit;}if (!this.handler) {this.handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas);}// @ts-ignorethis.viewer._container.style.cursor = "crosshair"; //修改鼠标样式 ,精确选择this.addEventListener();}

2.绘制事件监听

    //鼠标 左键点击this.handler.setInputAction((e) => {const target = this.viewer.scene.pick(e.position);// && target.collectionif (target && this.enableEdit && this.drawEnd) {this.addEditEventListen(e);return;}// 非编辑状态if (!this.editState && !this.drawEnd) {const point: any = this.viewer.scene.pickPosition(e.position);this.polylinePostions.push(point);// 默认开启编辑 显示编辑点if (this.enableEdit) {const editPoints: any = this.creatPoint(point);this.pointList.push(editPoints);}if (this.polylinePostions.length === 1) {this.drawPolyline();}}}, Cesium.ScreenSpaceEventType.LEFT_CLICK);// 鼠标移动this.handler

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 新增用户 开发
  • Gin框架入门(2)--异常捕获与日志实现
  • 【系统架构设计师】论文模板:快速写好一篇架构设计师论文
  • Flutter局域网广播(UDP通信)与TCP通信
  • kafka 消息位移提交几种方式:消息重复消息、消息丢失的关键
  • C++ | Leetcode C++题解之第415题字符串相加
  • Go-知识-定时器
  • KTH5762系列 低功耗、高精度 3D 霍尔角度传感器 电子手表旋钮应用
  • 【对比学习串烧】 SimSiam MoCov3 DINO
  • nacos和eureka的区别
  • java(3)数组的定义与使用
  • 数值实验作业(第一章)
  • 鸿蒙OpenHarmony【轻量系统内核扩展组件(动态加载)】子系统开发
  • Python青少年简明教程目录
  • 混合开发应用侧-JSBridge,在加载的网页中调用原生能力
  • 【node学习】协程
  • 03Go 类型总结
  • 4个实用的微服务测试策略
  • chrome扩展demo1-小时钟
  • Consul Config 使用Git做版本控制的实现
  • extjs4学习之配置
  • Java方法详解
  • PAT A1092
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • vue-cli在webpack的配置文件探究
  • 开源SQL-on-Hadoop系统一览
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 一份游戏开发学习路线
  • 正则表达式
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • Android开发者必备:推荐一款助力开发的开源APP
  • elasticsearch-head插件安装
  • linux 淘宝开源监控工具tsar
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​经​纬​恒​润​二​面​​三​七​互​娱​一​面​​元​象​二​面​
  • ​香农与信息论三大定律
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #Spring-boot高级
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (6)添加vue-cookie
  • (javascript)再说document.body.scrollTop的使用问题
  • (poj1.2.1)1970(筛选法模拟)
  • (补充)IDEA项目结构
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (排序详解之 堆排序)
  • (转)visual stdio 书签功能介绍
  • (转)菜鸟学数据库(三)——存储过程
  • (转)负载均衡,回话保持,cookie
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .Net 路由处理厉害了