nVisual 二次开发:URL 参数体系与深链跳转
概述nVisual 支持通过 URL 查询参数精确控制视图的打开行为。只需构造特定格式的链接即可从外部系统直接跳转到 nVisual 的指定视图、高亮目标对象、锁定相机位置甚至自动触发搜索。适用场景从 CMDB、网管系统、工单系统等外部平台生成链接一键跳转到 nVisual 的精准定位视图。基础入口所有深链以diagram.html为基础入口https://{nVisual 域名}/diagram.html?id{视图ID}参数通过 URL Query String 方式拼接多个参数用连接。完整参数速查表参数类型必填说明示例值idnumber/string✅目标视图DiagramID24000000000001blinkstring❌需要高亮闪烁的目标对象 ID24000000000001viewstring❌视图渲染模式2dXnumber条件相机 X 坐标与view配套350.5Ynumber条件相机 Y 坐标与view配套220.0Znumber条件相机 Z 坐标3D 模式必需50zoomnumber条件缩放级别与view配套1.2centerXnumber❌视口中心 X 偏移0centerYnumber❌视口中心 Y 偏移0centerZnumber❌视口中心 Z 偏移0mapJSON string❌地图模式定位参数支持经纬度{center:[x,y],zoom:12}xnumber❌地图经度 / 投影 X 坐标116.404ynumber❌地图纬度 / 投影 Y 坐标39.915mapZoomnumber❌地图缩放层级12searchBusinessstring❌触发业务搜索传1即生效1businessNamestring❌搜索关键词与searchBusiness配套核心交换机editableboolean❌是否允许编辑传false关闭编辑falseisShareboolean❌是否为分享模式true参数分类详解一、id— 目标视图最重要的参数。每个 Diagram视图在 nVisual 中都有唯一 ID通过此参数指定要打开的视图。diagram.html?id24000000000001如果 URL 中不传id或传入无效值nVisual 会自动回退到顶层视图。二、blink— 目标对象高亮视图加载完成后自动高亮并居中显示指定对象是最常用的深链定位手段。diagram.html?id24000000000001blink24000000000001行为说明视图模式高亮行为普通 2D 视图画布自动居中到目标对象目标对象持续闪烁地图模式地图自动飞行至目标对象的经纬度目标对象持续闪烁注意blink参数为一次性消费闪烁完成后自动从 URL 中移除。用户刷新页面不会再次触发闪烁。目标对象 ID 的获取方式在 nVisual 中选中图元通过postMessage的nvisualPatrolSelectedNodeIdList消息获取参见《通过 postMessage 获取 nVisual 状态》通过 nVisual 的搜索 API 查询对象列表从 nVisual 导出数据中获取三、view/X/Y/Z/zoom— 视图模式与相机位置精确控制视图的渲染模式和初始视角实现打开即定位。diagram.html?id24000000000001view2dX350.5Y220.0zoom1.2view取值值渲染模式必需配套参数2d/2D2D 平面视图X,Y,zoom3d/3D3D 立体视图X,Y,Zmap地图模式X,Y,zoomname名称模式X,Y,zoommodel型号模式X,Y,zoomperson人物视角X,Y,Z参数校验缺少必需参数时nVisual 会忽略view设置回退到该视图的默认渲染模式和默认视角。centerX/centerY/centerZ视口中心偏移量可选参数默认为0。四、map/x/y/mapZoom— 地图定位专为地图模式设计的精确定位参数。方式一JSON 格式diagram.html?id24000000000001map{center:[116.404,39.915],zoom:14,isLonLat:true}字段类型说明center[number, number]中心点坐标zoomnumber地图缩放级别isLonLatboolean坐标是否为经纬度。true时自动转为投影坐标false或省略时按投影坐标处理方式二简单参数diagram.html?id24000000000001x12950000y4850000mapZoom12适合与blink配合使用当目标对象在地图模式下的自身坐标不可用时nVisual 从x/y/mapZoom参数中读取定位信息。五、searchBusiness/businessName— 自动触发搜索打开视图后自动展开左侧搜索面板填入关键词并触发搜索。diagram.html?id24000000000001searchBusiness1businessName汇聚交换机参数说明searchBusiness1触发自动搜索传任意非空值即可businessName搜索关键词六、editable/isShare— 权限与模式控制diagram.html?id24000000000001editablefalseisSharetrue参数说明editablefalse以只读模式打开视图禁止编辑、拖拽、删除图元isSharetrue标记为分享链接深链场景示例场景 1告警定位网管系统产生告警运维人员点击告警直接跳转到 nVisual 中对应设备所在视图并高亮。diagram.html?id24000000000001blinkSW-CORE-01场景 2工单关联工单系统关联设备变更点击查看拓扑以 2D 模式打开指定视图并定位。diagram.html?id24000000000001view2dX350Y220zoom1.5editablefalse场景 3GIS 地图定位从资产管理平台跳转到 nVisual 地图视图定位到指定经纬度。diagram.html?id24000000000001viewmapmap{center:[116.404,39.915],zoom:14,isLonLat:true}场景 4模糊搜索入口从 CMDB 搜索页面带关键词跳转到 nVisual 自动执行搜索。diagram.html?id24000000000001searchBusiness1businessName核心交换机场景 5组合使用只读分享链接打开视图 → 高亮设备 → 禁止编辑diagram.html?id24000000000001blinkSW-A3-01editablefalseisSharetrue外部系统集成代码JavaScript 深链构造器/** * 构造 nVisual 深链 * * param {object} options * param {number} options.id - Diagram ID必填 * param {string} [options.blink] - 高亮对象 ID * param {string} [options.view] - 视图模式: 2d | 3d | map | name | model * param {number} [options.x] - 相机 X 坐标 * param {number} [options.y] - 相机 Y 坐标 * param {number} [options.z] - 相机 Z 坐标3D 必需 * param {number} [options.zoom] - 缩放级别 * param {number} [options.centerX] - 视口中心 X 偏移 * param {number} [options.centerY] - 视口中心 Y 偏移 * param {object} [options.map] - 地图定位 { center, zoom, isLonLat } * param {boolean}[options.editable] - 是否可编辑 * param {string} [options.businessName]- 搜索关键词 * returns {string} 完整的深链 URL */functionbuildNvisualDeepLink(options){constbaseUrlhttps://{nVisual 域名}/diagram.html;constparamsnewURLSearchParams();// 必填if(!options.id)thrownewError(id 为必填参数);params.set(id,options.id);// 高亮if(options.blink)params.set(blink,options.blink);// 视图模式if(options.view)params.set(view,options.view);if(options.x!null)params.set(X,options.x);if(options.y!null)params.set(Y,options.y);if(options.z!null)params.set(Z,options.z);if(options.zoom!null)params.set(zoom,options.zoom);if(options.centerX!null)params.set(centerX,options.centerX);if(options.centerY!null)params.set(centerY,options.centerY);// 地图定位if(options.map)params.set(map,JSON.stringify(options.map));// 权限模式if(options.editablefalse)params.set(editable,false);// 搜索if(options.businessName){params.set(searchBusiness,1);params.set(businessName,options.businessName);}return${baseUrl}?${params.toString()};}使用示例// 场景1告警定位constalarmLinkbuildNvisualDeepLink({id:24000000000001,blink:SW-CORE-01,});window.open(alarmLink,_blank);// 场景2工单只读查看constticketLinkbuildNvisualDeepLink({id:24000000000001,view:2d,x:350,y:220,zoom:1.5,editable:false,});document.getElementById(nvisual-frame).srcticketLink;// 场景3GIS 定位constgisLinkbuildNvisualDeepLink({id:24000000000001,view:map,map:{center:[116.404,39.915],zoom:14,isLonLat:true},});window.open(gisLink,_blank);// 场景4搜索入口constsearchLinkbuildNvisualDeepLink({id:24000000000001,searchBusiness:1,businessName:核心交换机,});window.open(searchLink,_blank);// 场景5分享链接constshareLinkbuildNvisualDeepLink({id:24000000000001,blink:SW-A3-01,editable:false,isShare:true,});copyToClipboard(shareLink);与 postMessage 的配合使用深链负责初始定位postMessage负责运行时通信。两者结合可实现完整的交互闭环// 父窗口集成代码 constnVisualFramedocument.getElementById(nvisual-frame);// 1. 初始加载通过 URL 参数定位functionopenNvisual(diagramId,highlightNodeId){nVisualFrame.srcbuildNvisualDeepLink({id:diagramId,blink:highlightNodeId,editable:false,});}// 2. 运行时跳转通过 postMessage 发送 jumpTo 指令无需刷新 iframefunctionjumpToDiagram(diagramId){nVisualFrame.contentWindow.postMessage({type:DASHBOARD-EVENT,event:jumpTo,id:diagramId,},*);}// 3. 监听 nVisual 状态变化window.addEventListener(message,(event){const{type,value}event.data||{};// 视图切换时外部系统同步更新if(typenvisualPatrolDiagramIdList){updateExternalBreadcrumb(value);}// 用户选中图元时外部系统可同步展示详情if(typenvisualPatrolSelectedNodeIdList){showSelectedInfo(value.nodeIdList,value.linkIdList);}});// 示例外部告警 → 一键定位 nVisualfunctiononAlarmClicked(alarm){openNvisual(alarm.diagramId,alarm.deviceNodeId);}注意事项blink一次性消费高亮完成后自动从 URL 移除刷新不会再次闪烁。如需每次打开都高亮每次重新构造链接即可。view仅首次加载生效仅在 iframe 初始加载时读取内部视图跳转后不会重新应用。坐标系统map参数中若使用经纬度务必设置isLonLat: true若已是投影坐标省略此字段即可。History 路由模式nVisual 使用 History 模式URL 中不含#。如将 nVisual 作为独立页面部署需确保 Web 服务器配置了 SPA fallback。跨域如果父窗口与 nVisual 不同源通过postMessage通信时注意校验event.origin。

相关新闻

银河麒麟V10安装MySQL 5.7全流程:root远程登录+常见报错处理

银河麒麟V10安装MySQL 5.7全流程:root远程登录+常见报错处理

麒麟系统安装mysql-5.7并实现root远程登录清理系统环境查看系统版本信息卸载mariadb删除用户和组部署软件包下载mysql软件包解压软件包创建系统用户配置目录与权限初始化数据库配置环境变量初始化数据库配置文件自定义配置文件设置权限配置service文件创建service文件启动服务服…

2026/8/1 19:51:10阅读更多 →
从Stitch、Lovable到Paico,为什么AI生成UI之前要充分理解需求

从Stitch、Lovable到Paico,为什么AI生成UI之前要充分理解需求

AI生成UI越来越快,但为什么很多结果还是不够用?这几年AI产品设计工具更新得特别勤,像Google Stitch、Paico这种能直接生成UI的,还有Lovable、v0这类帮你搞定应用开发的,确实把“脑子里有个想法”到“手里有个产品”的路…

2026/7/31 18:58:00阅读更多 →
智慧楼宇多时间尺度能源调度系统设计与实现

智慧楼宇多时间尺度能源调度系统设计与实现

1. 项目背景与核心价值智慧楼宇能源管理正面临一个关键挑战:如何在电力市场多时间尺度交易机制下实现经济高效的用能调度。传统楼宇调度往往采用单一时间尺度的静态策略,难以应对电价波动和负荷变化。我们团队开发的这套多时间尺度调度系统,通…

2026/8/1 22:26:51阅读更多 →
PHP变量存储与系统生命周期深度解析

PHP变量存储与系统生命周期深度解析

1. PHP变量赋值与字符串处理的底层逻辑当我们在PHP中写下$a ewew这样看似简单的赋值语句时,实际上触发了PHP解释器一系列复杂的底层操作。让我们深入解析这个过程的每个环节:1.1 变量存储机制PHP作为动态类型语言,其变量存储采用了ZVAL结构体…

2026/8/1 22:25:34阅读更多 →
华为OD机试C++真题解析:配置操作失败统计实现

华为OD机试C++真题解析:配置操作失败统计实现

1. 华为OD机试真题解析:配置操作失败数量统计最近在准备华为OD机试的朋友们注意了,2026年4月8日的C真题中出现了"配置操作失败数量统计"这道题目。作为参加过多次华为OD机试的老手,我发现这类题目非常考验候选人对实际问题建模和编…

2026/8/1 22:25:34阅读更多 →
SpringBoot3+Vue3+MySQL 老年兴趣班管理系统源码 前后端分离实战

SpringBoot3+Vue3+MySQL 老年兴趣班管理系统源码 前后端分离实战

一、项目简介 老年兴趣班管理系统是一套面向老年大学、社区活动中心等场景的教务管理平台,采用 Spring Boot 3 Vue 3 前后端分离架构。系统围绕课程、活动、作品、积分四条业务主线,覆盖从教务管理到学员互动的完整闭环。系统内置管理员、教师、学员三种…

2026/8/1 22:25:34阅读更多 →
FfDL与Horovod集成教程:分布式训练性能优化的关键步骤

FfDL与Horovod集成教程:分布式训练性能优化的关键步骤

FfDL与Horovod集成教程:分布式训练性能优化的关键步骤 【免费下载链接】FfDL Fabric for Deep Learning (FfDL, pronounced fiddle) is a Deep Learning Platform offering TensorFlow, Caffe, PyTorch etc. as a Service on Kubernetes 项目地址: https://gitcod…

2026/8/1 22:25:34阅读更多 →
3步搭建私有AI聊天平台:为什么Open WebUI是你的最佳选择?

3步搭建私有AI聊天平台:为什么Open WebUI是你的最佳选择?

3步搭建私有AI聊天平台:为什么Open WebUI是你的最佳选择? 【免费下载链接】open-webui User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 项目地址: https://gitcode.com/GitHub_Trending/op/open-webui 还在为数据隐私担忧而不敢…

2026/8/1 22:25:34阅读更多 →
15种炫酷动画效果:Piano LED Visualizer让你的钢琴演奏更吸睛

15种炫酷动画效果:Piano LED Visualizer让你的钢琴演奏更吸睛

15种炫酷动画效果:Piano LED Visualizer让你的钢琴演奏更吸睛 【免费下载链接】Piano-LED-Visualizer Piano LED Visualizer: Connect an LED strip to your Raspberry Pi and create an immersive visual experience for your piano playing 项目地址: https://g…

2026/8/1 22:23:34阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/8/1 21:54:49阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/8/1 21:14:15阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →