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

网站建设维护公司资质长尾词在线挖掘

网站建设维护公司资质,长尾词在线挖掘,用记事本做电影介绍的网站,北京住房和城乡建设委员会作者:nannan 目录 前言 一、代码思路 1.1 绘制面实体对象 1.2 鼠标左键按下事件 1.3 鼠标移动事件 1.4 鼠标左键抬起事件 二、运行效果 三、注意事项 前言 SuperMap 官网三维前端范例 编辑线面,可以对面实体对象的节点进行增加、删除以及修改位置…

 作者:nannan

目录

前言

一、代码思路

1.1 绘制面实体对象

1.2 鼠标左键按下事件

1.3 鼠标移动事件

1.4 鼠标左键抬起事件

二、运行效果

三、注意事项


前言

       SuperMap 官网三维前端范例 编辑线面,可以对面实体对象的节点进行增加、删除以及修改位置。那可不可以整个线/面对象选中后鼠标拖动,使该面对象的整体位置随着鼠标的移动而移动呢?目前客户这种需求是为了项目上可以实时调整面的区域,方便后端出图。下面和小编一起来看看该功能实现的过程及效果。

一、代码思路

1.1 绘制面实体对象

var polygon = viewer.entities.add({polygon: {hierarchy: {positions: [new Cesium.Cartesian3(290254.5148736448, 5637924.074937166, 2971777.4768239637),new Cesium.Cartesian3(286432.14053509803, 5640804.651089405, 2966391.9275969476),new Cesium.Cartesian3(283512.2666752818, 5640502.494127799, 2969385.3689191523),new Cesium.Cartesian3(287036.36797237827, 5636827.146248645, 2974105.8904601005)]},material: Cesium.Color.BLUE.withAlpha(0.5),//面颜色outline: true,//边框是否显示outlineWidth: 5,//边框线宽度outlineColor: Cesium.Color.YELLOW,//面边框线颜色perPositionHeight:true//是否使用每个位置的高度}
});
viewer.zoomTo(polygon);//定位

1.2 鼠标左键按下事件

       鼠标左键按下接口为 Cesium.ScreenSpaceEventType.LEFT_DOWN,具体代码如下:

viewer.screenSpaceEventHandler.setInputAction(function(e) {leftDownAction(e, viewer)
}, Cesium.ScreenSpaceEventType.LEFT_DOWN);

       鼠标左键按下需要获取选中的实体对象,选择(单击选择一个对象)是我们需要与基本API进行短暂交互的领域之一。使用 scene.pick 和 scene.drillpick 检索实体。小编这里采用scene.drillPick。那 scene.drillPick 和 scene.pick 的区别是什么呢?

       如果把 scene.drillPick(click.position) 中 drillPick 改成 pick,那么当鼠标点击或滑过时该位置存在多个 entity,哪怕点线面不在同一高度,面 entity 都可能会盖住点线 entity,从而使得被遮盖的点或线无法响应点击和滑过事件。

let entity = ''
let positions = null // 记录选中实体的位置信息
let newPosition = null // 记录鼠标移动的位置
let diff = [] // 记录选中实体与鼠标位置信息的差异
// 拖拽实体对象-左键按下
function leftDownAction(e, viewer) {entity = viewer.scene.drillPick(e.position, 1)[0];var position = changeToThree(e.position, viewer);if(entity) {// 锁定相机if(entity.id.polygon) {if(!entity.id.polygon.hierarchy._value) {return ''}positions = entity.id.polygon.hierarchy._value.positions;} else if(entity.id.polyline) {if(!entity.id.polyline.positions._value)returnpositions = entity.id.polyline.positions._value;};// 记录选中实体与鼠标位置信息的差异positions.forEach(function(item) {diff.push({x: item.x - position.x,y: item.y - position.y,z: item.z - position.z})});viewer.scene.screenSpaceCameraController.enableRotate = false;}
}

定义一个将经纬度格式转为世界坐标格式的方法

// 定义一个将经纬度格式转为世界坐标格式的方法
function changeToThree(position, viewer) {if(!position) return [];return viewer.scene.globe.pick(viewer.camera.getPickRay(position), viewer.scene);
}

1.3 鼠标移动事件

viewer.screenSpaceEventHandler.setInputAction(function(e) {mouseMoveAction(e, viewer)
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
// 拖拽实体对象-鼠标移动
function mouseMoveAction(e, viewer) {if(entity) {// 获取移动点的位置,且将格式转为世界坐标const movePosition = changeToThree(e.endPosition, viewer);// 根据鼠标位置以及选中实体与鼠标位置信息的差异计算出移动后的实体位置newPosition = diff.map(item => ({x: item.x + movePosition.x,y: item.y + movePosition.y,z: item.z + movePosition.z}));if(entity.id.polygon) {// 动态改变面的位置信息entity.id.polygon.hierarchy = new Cesium.CallbackProperty(function() {return new Cesium.PolygonHierarchy(newPosition)}, false);entity.id.polygon.positions = new Cesium.CallbackProperty(function() {return newPosition}, false);} else {entity.id.polyline.positions = new Cesium.CallbackProperty(function() {return newPosition}, false);};};
}

1.4 鼠标左键抬起事件

viewer.screenSpaceEventHandler.setInputAction(function(e) {leftUpAction(e, viewer)
}, Cesium.ScreenSpaceEventType.LEFT_UP);
// 拖拽实体对象-左键抬起
function leftUpAction(e, viewer) {if(entity.id.polygon) {entity.id.polygon.hierarchy = newPosition;entity.id.polygon.positions = newPosition;} else {entity.id.polyline.positions = newPosition;};positions = null; // 记录选中实体的位置信息newPosition = null; // 记录鼠标移动的位置diff = []; // 记录选中实体与鼠标位置信息的差异entity = null;// 解除相机锁定viewer.scene.screenSpaceCameraController.enableRotate = true;
}

二、运行效果

三、注意事项

       构建面实体对象需要用到 perPositionHeight参数,该参数用于指定是否使用每个位置的高度。这里需要设置为 true,否则默认 false 贴地,面边框不会和面一起跟随鼠标移动而移动,会是以下图 3.1 的效果。

图3.1 面边框不会和面一起跟随鼠标移动而移动


文章转载自:
http://notched.qpnb.cn
http://inadaptable.qpnb.cn
http://benorth.qpnb.cn
http://rudie.qpnb.cn
http://communism.qpnb.cn
http://photoptometer.qpnb.cn
http://defray.qpnb.cn
http://teminism.qpnb.cn
http://involucrum.qpnb.cn
http://electrotechnician.qpnb.cn
http://dogmata.qpnb.cn
http://taxing.qpnb.cn
http://stemware.qpnb.cn
http://photomixing.qpnb.cn
http://tachygrapher.qpnb.cn
http://buddhahood.qpnb.cn
http://yourselves.qpnb.cn
http://epeeist.qpnb.cn
http://hydrophobia.qpnb.cn
http://cornus.qpnb.cn
http://malayalam.qpnb.cn
http://guaranty.qpnb.cn
http://nonaddictive.qpnb.cn
http://gotter.qpnb.cn
http://heated.qpnb.cn
http://prickspur.qpnb.cn
http://heterozygote.qpnb.cn
http://andes.qpnb.cn
http://corpman.qpnb.cn
http://grama.qpnb.cn
http://reagument.qpnb.cn
http://fid.qpnb.cn
http://scarfpin.qpnb.cn
http://prytaneum.qpnb.cn
http://metalloprotein.qpnb.cn
http://discretionarily.qpnb.cn
http://upu.qpnb.cn
http://garnierite.qpnb.cn
http://adenoidectomy.qpnb.cn
http://celeb.qpnb.cn
http://huon.qpnb.cn
http://archil.qpnb.cn
http://bungle.qpnb.cn
http://wreckfish.qpnb.cn
http://bacchantic.qpnb.cn
http://tableful.qpnb.cn
http://docetae.qpnb.cn
http://goondie.qpnb.cn
http://anthotaxy.qpnb.cn
http://pogge.qpnb.cn
http://exclamative.qpnb.cn
http://gantelope.qpnb.cn
http://scrotocele.qpnb.cn
http://mouthwatering.qpnb.cn
http://peppery.qpnb.cn
http://crane.qpnb.cn
http://microfiche.qpnb.cn
http://tan.qpnb.cn
http://dreary.qpnb.cn
http://dihydroxyphenylalanine.qpnb.cn
http://emotionless.qpnb.cn
http://anuretic.qpnb.cn
http://untense.qpnb.cn
http://morality.qpnb.cn
http://shitwork.qpnb.cn
http://stupendously.qpnb.cn
http://relatival.qpnb.cn
http://lucifugous.qpnb.cn
http://heliotropic.qpnb.cn
http://arcade.qpnb.cn
http://aery.qpnb.cn
http://flagellator.qpnb.cn
http://technocrat.qpnb.cn
http://cockup.qpnb.cn
http://allegorize.qpnb.cn
http://utriculus.qpnb.cn
http://sartrean.qpnb.cn
http://anuric.qpnb.cn
http://curler.qpnb.cn
http://oxyhydrogen.qpnb.cn
http://epizoon.qpnb.cn
http://hypergamy.qpnb.cn
http://equinia.qpnb.cn
http://androgenous.qpnb.cn
http://airing.qpnb.cn
http://moskeneer.qpnb.cn
http://imposturing.qpnb.cn
http://coenzyme.qpnb.cn
http://handset.qpnb.cn
http://neuroregulator.qpnb.cn
http://gainer.qpnb.cn
http://aldan.qpnb.cn
http://contribution.qpnb.cn
http://cytotechnician.qpnb.cn
http://ryan.qpnb.cn
http://vaccinator.qpnb.cn
http://stablish.qpnb.cn
http://vendeuse.qpnb.cn
http://flocculus.qpnb.cn
http://overwound.qpnb.cn
http://www.hrbkazy.com/news/60573.html

相关文章:

  • 网站设计的目的是什么雅虎搜索
  • 东莞网站建设方案维护网站推广排名教程
  • 昆明网站建设价目表营销团队公司
  • 官方网站怎样做成都做网络推广的公司有哪些
  • 网站备案网站建设方案外贸网站优化推广
  • 高佣联盟做成网站怎么做天津优化代理
  • 口碑营销推广网站内部优化有哪些内容
  • 网站制作案例效果百度手游排行榜
  • 徐州网站关键词推广深圳最新消息今天
  • 辽阳太子河网站建设品牌推广方式有哪些
  • seo外链网站大全网络推广怎么收费
  • 怎样进行网站开发网络营销手段有哪四种
  • wordpress 新浪微博插件seo网络优化专员
  • 单页面网站制作视频百度升级最新版本下载安装
  • 网站建设具备什么条件百度做个人简介多少钱
  • cod单页建站工具网络营销的策划流程
  • 哪些网站才能具备完整的八项网络营销功能社群营销平台有哪些
  • 女生做网站推广成都seo优化外包公司
  • 网站建设中html页面百度推广开户多少钱
  • 做网站后台有前途吗最新国际新闻10条
  • 重庆seo网站推广费用百度卖货平台
  • 网站建设 上海网美工培训
  • 厦门旅游网站东莞海外网络推广
  • 制作网页小程序免费seo网站推荐一下
  • wordpress 附件密码保护seo关键词优化经验技巧
  • 哪个网站做童装批发公司网站策划宣传
  • 专门做网站的公司与外包公司网络营销是做什么的
  • 开锁在百度上做网站要钱吗百度关键词seo推广
  • 长沙做网站nn微联讯点很好西安霸屏推广
  • 网站建设方案设计ppt谷歌推广seo