arcgis js 动态绘制白膜

2024-04-13 05:12
文章标签 动态 arcgis js 绘制 白膜

本文主要是介绍arcgis js 动态绘制白膜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

arcgis动态绘制白膜

export default {name: 'ControlHeight',data () {return {offsetHeight: 350,limitHeight: 100, // 限高高度opacity: 0,color: '#409EFF',currPolygon: null,polygonLayerList: [],polygonData: [],currChangedOpacity: 0,polygonNum: 0}},methods: {draw () {const self = thisself.map.container.style.cursor = 'crosshair'let arr = []//   self.map.graphics.remove(self.currPolygon)const controlHeightGraphicLayer = new self.GraphicsLayer({// graphics: [graphic],elevationInfo: {mode: 'absolute-height',// 偏移offset: self.offsetHeight,unit: 'meters'}// screenSizePerspectiveEnabled: true})self.clickEvent = self.map.on('click', evt => {arr.push([evt.mapPoint.longitude, evt.mapPoint.latitude])})self.moveEvent = self.map.on('pointer-move', evt => {if (arr.length > 0) {//   self.map.graphics.remove(self.currPolygon)controlHeightGraphicLayer.graphics.remove(self.currPolygon)const mapPoint = self.map.toMap({ x: evt.x, y: evt.y })let arr2 = []arr.forEach(res => {arr2.push(res)})arr2.push([mapPoint.longitude, mapPoint.latitude])arr2.push(arr[0])const graphic = new self.Graphic({geometry: new self.Polygon({//   hasZ: true,//   hasM: false,rings: [arr2],spatialReference: self.map.spatialReference}),symbol: {type: 'polygon-3d', // 'simple-fill',symbolLayers: [{type: 'extrude',size: self.limitHeight,material: {color: self.color// opacity: (100 - self.opacity) / 100}}]//   color: [ 0, 255, 0, 0.2],//   style: 'solid',//   outline: {//     color: 'white',//     width: 1//   }}})controlHeightGraphicLayer.elevationInfo.offset = self.offsetHeightcontrolHeightGraphicLayer.opacity = (100 - self.opacity) / 100controlHeightGraphicLayer.graphics.add(graphic)//   self.map.graphics.add(graphic)self.map.map.add(controlHeightGraphicLayer)self.currPolygon = graphic}})self.dbclickEvent = self.map.on('double-click', evt => {evt.stopPropagation()self.map.container.style.cursor = 'default'self.clickEvent.remove()self.clickEvent = ''self.moveEvent.remove()self.moveEvent = ''self.dbclickEvent.remove()self.dbclickEvent = ''// console.log(self.currPolygon)// self.polygonLayerList.push(controlHeightGraphicLayer)self.polygonData.push({layer: controlHeightGraphicLayer,name: `模型_${self.polygonNum}`,opacity: self.opacity,edit: false})self.polygonNum++// self.geometry = self.polygonObj.geometry})},deleteGraphicer (row) {row.layer.removeAll()this.map.map.remove(row.layer)this.polygonData = this.polygonData.filter(item => item.layer !== row.layer)},editData (row) {row.edit = truethis.currChangedOpacity = row.opacity},saveData (row) {row.layer.opacity = (100 - row.opacity) / 100row.edit = false},cancelSaveData (row) {row.layer.opacity = (100 - this.currChangedOpacity) / 100row.edit = false},changeOpacity (row) {row.layer.opacity = (100 - row.opacity) / 100},close () {this.polygonNum = 0this.$emit('close')}},mounted () {let self = this// self.wkid = sysConfig.wkidmapManager.getMap(this.mapId).then(({ map }) => {self.map = mapesriLoader.loadModules(['esri/Map','esri/layers/GraphicsLayer','esri/widgets/Sketch/SketchViewModel','esri/Graphic','esri/geometry/Polygon'], { url: serverConfig.arcgis_js_api_url }).then(([Map, GraphicsLayer, SketchViewModel, Graphic, Polygon]) => {self.Map = Mapself.GraphicsLayer = GraphicsLayerself.SketchViewModel = SketchViewModelself.Graphic = Graphicself.Polygon = Polygon})})}
}

这篇关于arcgis js 动态绘制白膜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/899220

相关文章

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

MyBatis-Plus使用动态表名分表查询的实现

《MyBatis-Plus使用动态表名分表查询的实现》本文主要介绍了MyBatis-Plus使用动态表名分表查询,主要是动态修改表名的几种常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录1. 引入依赖2. myBATis-plus配置3. TenantContext 类:租户上下文

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

基于Nacos实现SpringBoot动态定时任务调度

《基于Nacos实现SpringBoot动态定时任务调度》本文主要介绍了在SpringBoot项目中使用SpringScheduling实现定时任务,并通过Nacos动态配置Cron表达式实现任务的动... 目录背景实现动态变更定时机制配置化 cron 表达式Spring schedule 调度规则追踪定时

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图