首页 > 其他分享 >vuejs+cesium绘制点以及给点添加点击事件

vuejs+cesium绘制点以及给点添加点击事件

时间:2023-02-16 11:22:49浏览次数:54  
标签:Cesium entities vuejs viewer 点击 let cesium new id

1、绘制一个点

  this.viewer.entities.add({                id:‘设置点的id’,                position : new Cesium.Cartesian3.fromDegrees(经度, 纬度, 高度),                point : {                     pixelSize : 15,//点的大小                     color: Cesium.Color.RED,//点的颜色                     outlineWidth:2,//边框宽度                     outlineColor: Cesium.Color.WHITE.withAlpha(0.4),//边框颜色               }         }) 2、将绘制的点更改为一个图片         this.viewer.entities.add({                id:‘设置点的id’,                position : new Cesium.Cartesian3.fromDegrees(经度, 纬度, 高度),         billboard:{                   // 图像地址,URI或Canvas的属性                   image: require('../../../assets/image/header/position.png'),                   // 设置颜色和透明度                   color: Cesium.Color.WHITE.withAlpha(0.8),                   // 高度(以像素为单位)                   height: 36,                   // 宽度(以像素为单位)                   width: 36,                   // 逆时针旋转                   rotation: 0,                   // 大小是否以米为单位                   sizeInMeters: false,                   // 相对于坐标的垂直位置                   verticalOrigin: Cesium.VerticalOrigin.CENTER,                   // 相对于坐标的水平位置                   horizontalOrigin: Cesium.HorizontalOrigin.LEFT,                   // 该属性指定标签在屏幕空间中距此标签原点的像素偏移量                   pixelOffset: new Cesium.Cartesian2(10, 0),                   // 应用于图像的统一比例。比例大于会1.0放大标签,而比例小于会1.0缩小标签。                   scale: 1.0,                   // 是否显示                   show: true              }       }) 3、绘制多个点且闪烁的      let x = 1;      let flog = true;         item.data.map((list,index)=>{               that.viewer.entities.add({                 id:`area${index}`,          infoId:list.infoId,                 position : new Cesium.Cartesian3.fromDegrees(list.lng, list.lat, list.alt),                 point : {                     pixelSize : 15,                     color: new Cesium.CallbackProperty(function () {                       if(flog){                         x = x - 0.01;                         if(x<=0){                           flog = false;                         }                       }else{                         x = x + 0.01;                         if(x>=1){                           flog = true;                         }                       }                       return Cesium.Color.RED.withAlpha(x);                     },false),                     outlineWidth:2,                     outlineColor: Cesium.Color.WHITE.withAlpha(0.4),                 }             })           })    this.handlePointClick();//添加点的点击事件
4、给点添加点击事件   handlePointClick(){     let that = this;     let handler = new Cesium.ScreenSpaceEventHandler(that.viewer.scene.canvas);          handler.setInputAction(function (click) {            let pick = that.viewer.scene.pick(click.position)               if (pick && pick.id) {                that.viewer.entities.values.map((item)=>{                   if(pick.id.id && (item.id == pick.id.id)){                       that.viewer._selectedEntity = [];//去除左击之后出现选中的绿框                       if(item.infoId){                           点击点之后的操作                       }                   }                })             }         }, Cesium.ScreenSpaceEventType.LEFT_CLICK)              this.viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);//去除双击放大地图效果     } 5、删除地图上绘制的所有的点
      this.viewer.entities.removeAll(); 6、删除地图上绘制的某一个点(通过id)       let getByIdBoxs = this.viewer.entities.getById('设置的id名称');       this.viewer.entities.remove(getByIdBoxs); 7、cesium的属性访问地址:http://cesium.xin/cesium/cn/Documentation1.72/PolygonGraphics.html
8、基础用法笔记来源:https://blog.csdn.net/lyxkgc/article/details/124796138 9、详细vuejs+cesium的使用:https://www.cnblogs.com/wangyan0926/p/16453982.html

标签:Cesium,entities,vuejs,viewer,点击,let,cesium,new,id
From: https://www.cnblogs.com/wangyan0926/p/17126013.html

相关文章

  • vue标记出文本中的超链接并可以点击跳转
    <pv-html="translateHtml(item.message)"></p>methods:{//给字符串中的链接用span标签包裹起来,实现点击跳转translateHtml(msg){varreg=......
  • Cesium渲染模块之概述
    1.引言Cesium是一款三维地球和地图可视化开源JavaScript库,使用WebGL来进行硬件加速图形,使用时不需要任何插件支持,基于Apache2.0许可的开源程序,可以免费用于商业和非商业......
  • 给按钮添加js代码,点击按钮后复制页面上的某个文本内容
    你可以通过JavaScript的document.execCommand()方法,结合使用document.createRange()和window.getSelection()方法来实现复制文本的功能。下面是一个例子,当用户点......
  • ios上实现按钮点击波纹涟漪
    [img]http://dl2.iteye.com/upload/attachment/0110/3964/2c309ac8-03ac-3580-8e09-77233a1925c4.png[/img][img]http://dl2.iteye.com/upload/attac......
  • 移动端Click300毫秒点击延迟 解决办法
    移动端Click300毫秒点击延迟产生的原因移动端浏览器的默认显示宽度是980px(不同机型各异,但相差不大),而不是屏幕的宽度(320px或其他)。为了对早期普通网页更好的体验,iphon......
  • Cesium 后处理(Post Process)
    原文地址:https://blog.csdn.net/ls870061011/article/details/123910821作者:GIS李胜为实现三维模型的更炫、更酷、更美观,Cesium在1.46的版本中新增了场景的后期处理(Pos......
  • 禁用a标签点击事件
     a标签是没有disable属性的,如果想用disable禁用a标签的点击事件,也可以实现;1.a标签要用disable属性,必须和pointer-events属性一起使用,html代码:<aid="test">测试</a......
  • 直播带货源码,vue中点击按钮平滑滚动到页面某个div位置
    直播带货源码,vue中点击按钮平滑滚动到页面某个div位置    goAnchorParent(selector){//参数selector是id选择器(例如:#anchor14)      document.queryS......
  • echarts渐变色可点击半圆图
      如上所示,用饼图改一个半圆图,同时半圆每个item设置不同的颜色。  首先需要搞出来一个echarts的容器,如下图所示,这玩意和echarts的官网搞个Div效果是一样的,只不过封装......
  • 猴游脚本 百度翻译删广告+翻译内容点击搜索
    ​​link​​oldnewupdate更新加入search按钮点击将内容在百度搜索中搜索//==UserScript==//@namebaidufanyiradiusandshadow//@namespacehttp......