一套开源三维管线管理系统

41 篇文章 0 订阅

Pipeline

介绍

二次开发源码开源的三维管线地理信息系统:

包括:

  1. 三维地图浏览/定位
  2. 管线快速查询 材质查询 / 管径查询 / 管块查询 / 埋设日期查询 / 复合条件查询 / 空间查询
  3. 管线数据统计
  4. 管径分段统计 埋深分段统计 / 材质分类统计 / 管径分类统计 / 综合统计
  5. 应急抢险分析 断面分析 / 爆管分析 / 地面开挖分析 / 覆土分析 / 追踪分析 / 流向分析
  6. 规划设计分析 净距分析 / 碰撞分析 / 连通性分析
  7. 管线属性标注
  8. 数据打印出图

源码地址:https://gitee.com/rzcgis/pipeline

基于超图supermap iobjects 10i的管线管理

相关组件:1.SunnyUI2.SuperMap iObjects 10i的管线管理3.Log4Net

初始化

在这里插入图片描述

基本操作

管径统计

管线查询

管线统计

规划分析

应急抢险

断面分析

大屏

开发

开发分为如下部分:

  1. 编写查询或者统计或者其他计算的条件面板:在Ycjw.PipeLine.Map.Tools.Conditions下根据实际条件实现ConditionPanel的子类

  2. 重写ConditionPanel的虚方法,Do方法是必须重写的,默认情况下ConditionPanel中m_BaseConditions的第一个元素是Scene对象

  3. 定义结果面板,重写ShowData方法即可,定义的类继承ResultWindow,且与第一步子类即条件面板同名。

  4. 配置菜单项,按照目录组织形成ribbon菜单,目前支持RibbonButton菜单,在相应的json中tag指向的是ConditionPanel子类的名称

菜单

增加菜单:如想要新增菜单,在Package\configs\menus目录下按照需求新建目录,目前支持的末级按钮为RibbonButton,在对应的json中通过属性tag配置关联的条件面板(相对于Ycjw.PipeLine.Map.Tools.Conditions

对于配置的菜单的图标,可以按照json的名称放在Pipeline\Package\resources目录下,或者名称按照json中配置项的Text属性放在Pipeline\Package\resources下,前者具有优先级。

无论是查询或者统计,基本过程概括为输入界面定制→输出界面定制。

输入

对输入,抽象了ConditionPanel对象,所有查询或者统计项目都统一继承ConditionPanel面板,实现属性输入或者空间输入。具体ConditionPanel又分为:

  • Toolbar模式,适用于纯粹在地图上进行交互输入的功能。
  • 普通模式,弹出对话框供用户输入
输出

对输出,抽象了ResultWindows,具体分为:

  • ResultWindowsDataGridView :包含结果表格
  • ResultWindowsChart:默认包含结果图和表,图的类型包括Pie/Bar/Line等五类。

如有特殊定制需求,请与我联系。

代码截取:

void LoadSceneLater()
        {
            SplashForm.Instance.SetMessage("初始化场景......");
            SceneAdapter.Instance.LoadSceneControl(dockPanel);
            Task.Factory.StartNew(() =>
            {
                System.Threading.Thread.Sleep(500);
            }).ContinueWith((t) => {
                SplashForm.Instance.SetMessage("场景初始化完成......");
                RibbonMenuRegister.Instance.SetDockPanel(this.dockPanel);

                UnRegister();

                m_SceneSetting = new SceneSetting(SceneAdapter.Instance.SceneControl,this);
                m_SceneMeasure = new SceneMeasure(SceneAdapter.Instance.SceneControl,this);
                m_SceneEntitySelect = new SceneEntitySelect(SceneAdapter.Instance.SceneControl,this);

                SceneAdapter.Instance.NewOpenEvent += WorkSpace_NewOpenEvent;

                //打开最后一次打开的工作空间
                var lastPath = Commons.SerializeHelper.IniHelper.Read(Commons.SerializeHelper.IniHelper.KEY_LAST_WORKSPACE_PATH);
                if (!string.IsNullOrEmpty(lastPath))
                {
                    SplashForm.Instance.SetMessage("加载上一次场景......");
                    SceneAdapter.Instance.OpenWorkSpace(lastPath);
                }
                System.Threading.Thread.Sleep(500);
                SplashForm.Instance.CloseIt = true;
                WindowState = FormWindowState.Maximized;
                this.BringToFront();

            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丷丩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值