基于GeoToolKit实现连井剖面对比显示及交互

发布时间:2026/10/30 19:21:06

基于GeoToolKit实现连井剖面对比显示及交互 最近基于GeoToolkit实现单井或多井的柱状图的显示和交互特别是多井的连通对比分析很多功能GeoToolkit原来是没有的。因此需要拓展了GeoToolKit的许多功能。本文主要基于GeoToolKit/INT组件针对多井的测井曲线、岩性剖面、含油气性和射孔井段等进行对比分析展示。因此本次主要基于WellLogWidget实现多井的测井曲线、解释结论和岩性剖面的显示以及连通性对比同时支持用户拖动鼠标实现整口井井道的移动连通性删减等交互操作。具体如下。其中的前后端内容详见之前文章。1.多井连通性对比效果演示2.核心代码主要采用VUEJSGeotoolKit.JS充分利用VUE的组件化设计思想实现多井多通道剖面显示和连通性交互操作等。MultiWellDrag.vuetemplate div canvas refplot styledisplay:block;margin:0 auto;height:900px;position:relative; / /div /template script import {createScene, setupDragInteraction, setupZoneConnectionInteraction, createConnectionContext} from ./MultiWellDrag.js; let plot null; let disposeDrag null; let disposeZoneConn null; export default { name:wellMultiDrag, destroyed () { if (disposeDrag) { disposeDrag(); disposeDrag null; } if (disposeZoneConn) { disposeZoneConn(); disposeZoneConn null; } plot.dispose(); }, mounted () { const canvas this.$refs.plot; // 用容器实际宽度设置 canvas 像素宽保证三口井铺满屏幕高度固定 900 // 1.绘制单井曲线道和油气属性道 const containerWidth canvas.parentElement.clientWidth || window.innerWidth; console.log(containerWidth, containerWidth); canvas.width containerWidth; canvas.height 900; const scene createScene(canvas); plot scene.plot; // 创建连接上下文在拖拽交互与连接交互之间共享连接关系 const connectionContext createConnectionContext(); // 2.启用井道拖拽交互按住鼠标左键拖动单井 header整体移动 WellLogWidget // 拖动时连接 zone 跟随移动连接关系不变 disposeDrag setupDragInteraction(plot, canvas, scene.widgets, connectionContext); // 3.启用 zone 连接交互点击一口井的 zone 再点击另一口井的 zone 自动连通 disposeZoneConn setupZoneConnectionInteraction( plot, canvas, scene.wellConfigs, scene.widgets, scene.wellWidth, scene.gap, scene.headerHeight, canvas.height, scene.zoneWellColors, connectionContext ); } }; /scriptMultiWellDrag.jsfunction createScene (canvas) { // 创建根 Group 容纳多个 WellLogWidget const root new Group(); root.setAutoModelLimitsMode(true); const { widgets, wellWidth, gap, wellConfigs, headerHeight, zoneWellColors } createWidgets(canvas.width, canvas.height); widgets.forEach(w root.addChild(w)); // // 在井间空白区域绘制连通性多边形 // addCorrelationZones(root, wellConfigs, widgets, wellWidth, gap, headerHeight, canvas.height, zoneWellColors); const plot new Plot({ canvasElement: canvas, root: root }); // 将每个 WellLogWidget 的内置工具含 track splitter注册到 Plot 的工具容器 // 使各井道的分隔线可拖拽调整宽度 try { const plotTool plot.getTool(); widgets.forEach(w { plotTool.add(w.getTool()); }); } catch (e) { console.warn(注册 widget 工具失败:, e); } return { plot, widgets, wellWidth, gap, wellConfigs, headerHeight, zoneWellColors }; } /** * 创建连接上下文在拖拽交互与连接交互之间共享连接关系数据。 * setupZoneConnectionInteraction 负责注册连接和更新函数 * setupDragInteraction 在拖动井道时调用更新函数让连接 zone 跟随移动。 */ function createConnectionContext () { return { connections: [], updateConnectionsForWidget: null, updateAllConnections: null, isDragging: false, // 拖拽进行中标记bounds 监控时跳过避免重复更新 addConnection (conn) { this.connections.push(conn); }, getConnectionsForWidget (widgetIndex) { return this.connections.filter(function (c) { return c.s1.widgetIndex widgetIndex || c.s2.widgetIndex widgetIndex; }); } }; } ......后续代码需要请联系。
延伸阅读

更多相关文章

2026/10/26 0:37:28

Java OA办公审批系统源码实战:从解压到二次开发全解析

简介:这是一套基于Java技术栈开发的完整OA办公审批系统源码及配套文档,面向计算机相关专业学生、初/中级Java开发者及企业项目参考者,解决日常办公流程自动化、审批流管理与微信端集成等实际业务需求,可直接用于毕业设计、课程设计…

2026/10/30 14:59:15

LCC-HVDC直流输电Simulink建模与仿真实践详解

简介:一份面向电力电子与电力系统学习者的LCC-HVDC直流输电仿真模型合集,整合了基于MATLAB/Simulink的多套建模方案,覆盖从基础换流器结构到不同控制策略的仿真实现,适合用于理解线路换相换流器的工作原理、谐波抑制与功率传输特性…

2026/10/27 10:16:53

重编译+启动器:老游戏汉化从补丁时代走向工程化

说实话,《塞尔达传说:梅祖拉的假面》这代游戏,劝退过不少人。原因不在游戏本身,而在于“把它跑起来”这件事太折腾。N64 版诞生在二十多年前,今天的电脑上直接运行基本不可能;模拟器虽然成熟,可…

2026/10/30 19:16:18

kernel-aodv_v2.2.2 内核态 AODV 编译、调优与避坑指南

简介:kernel-aodv_v2.2.2 是 Linux 内核环境下 AODV 按需距离矢量路由协议的实现源码包,面向具备一定 Linux 内核基础、从事无线自组织网络(Ad Hoc)研究与开发的工程师和高校师生,用于理解并部署无基础设施网络中的路由…

2026/10/30 19:16:18

QuickPCB2005终版:Win7/Win10离线抄板实战指南

简介:本资源是专为电子工程师及硬件逆向学习者提供的QuickPCB2005终版抄板软件,适配Windows 10/7系统,聚焦电路板图像识别与复刻需求,解决老旧PCB无源文件时的逆向设计难题。压缩包共27个文件,含核心可执行文件QuickPc…

2026/10/30 19:16:18

ARM Compiler 5.06实用指南:armcc与Keil工程迁移避坑要点

简介:ARM Compiler 5.06 是为 MDK(Keil Microcontroller Development Kit)定制的经典编译工具链,主要面向需要使用旧版本编译器维护或移植 ARM 工程的嵌入式工程师,尤其适合处理那些在更新版本下无法正常编译的项目。压…

2026/10/30 19:16:18

【纯免费分享】UG 二次开发救星:NXopen API 中文帮助文档

【纯免费分享】UG 二次开发救星:NXopen API 中文帮助文档 【免费下载链接】NXopenAPI中文帮助文档 本仓库提供了一份详细的NXopen API中文帮助文档,适用于UG(Unigraphics)软件的二次开发。该文档涵盖了NX OPEN C/C的开发内容&…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑