目录

  • 架构
  • 技术选型
    • GIS平台选择
    • 数据库选择
    • 开发语言选择
    • 开发框架
    • 发布部署
  • 代码目录
  • 开发参考资料

架构

系统总体架构图如下图所示:

技术选型

GIS平台选择

GIS基础平台选用ArcGIS 10.2系列软件,主要用到以下组件:

  • GIS服务器:ArcGIS Server,用于地下管线图层数据的发布和管理,提供统一的WMS、WMTS等OGC服务,同时提供ArcGIS独有的查询和统计服务。
  • 前端组件:ArcGIS Api for JS,用于实现管线系统前端地图页面的渲染,包括加载基础底图、加载管线图层和其他相关业务图层等信息;为系统GIS相关功能提供标准统一的调用接口,包括要素识别、点击查询、空间范围查询、属性查询等,为开发人员提供良好的封装条件和易用的代码编写规范。
  • 数据加工:Desktop软件ArcMap,用于对发布前的管线数据进行数据加工和处理,包括图层的设置、样式的编辑、缩放范围的设定等地图渲染条件和地图交互操作。

数据库选择

基于ArcGIS空间数据引擎SDE,数据库选择SQL Server 2012,主要用途如下:

  • 存储系统相关的数据,包括用户、角色、系统配置、系统运行管理等系统通用数据
  • 存储业务相关的数据,包括二维地下管线业务数据,空间字段和属性字段信息,除传统的数据库增删改查用途,还用于GIS服务器连接和图层的发布操作,以保证数据的更改可实时反映到发布的数据中。

开发语言选择

系统开发语言主要涉及C#、html、css、js,具体如下:

  • C#:实现用户登录、配置文件读取、系统变量读取、角色权限管理等基础逻辑
  • html、css、js:实现前端页面布局、样式渲染、交互逻辑的实现,同时进行后台接口调用

开发框架

系统基于C#语言和前端语言实现功能搭建,为了提高开发效率,使用vs2010集成开发工具进行开发,采用经典的Asp.net框架进行前后端逻辑的搭建,采用浏览器devtools进行系统调试。并且在开发过程中尝试引入了vue框架,用于提高页面布局和数据渲染的效率。

发布部署

因为系统是网页端程序,故需要在服务器上进行部署发布,为了充分利用开发工具提供的功能,最终选择使用windows提供的IIS组件作为系统的发布工具。

代码目录

按照系统开发的逻辑架构,划分系统层级,主要包括业务逻辑层、数据访问层、通用层、显示层四个部分,每部分具体说明如下:

  1. 逻辑层 BLL
  • 实现缓存处理
  • 实现地下管线设施类映射
  • 实现地下管线逻辑结构映射
  • 实现菜单管理
  1. 数据访问层DAL
  • 实现缓存数据处理
  • 实现管线设施类数据访问
  • 实现管线逻辑结构数据访问
  • 实现菜单数据访问
  1. 通用层COMMON
  • 缓存工具
  • html处理工具
  • 日志工具
  • xml解析工具
  1. 界面显示层WebUI
  • 样式
  • js封装逻辑
  • 页面
  • 接口逻辑
  • 静态资源,图片、字体等
  • web配置

开发参考资料

  1. vue开发官网
  2. arcgis api官方教程
  3. html教程
  4. css教程
  5. js教程
  6. asp.net教程

关注以下公众号,及时发布各种技术交流,并下载相关文档和程序

GIS开发之二维地下管线综合管理系统(Arcgis)第二节 技术架构相关推荐

  1. GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(2)

    目录 1.前言 2.功能介绍 2.1 关于QueryTask实现空间查询和属性查询 3.示例代码 3.1 QueryTask 4.参考资料 1.前言   上节主要和大家分享了点击查询相关的参数设置和前 ...

  2. GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder

    GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder ArcGIS python使用 modelbuilder使用 在管网系统的功能中,高效的数据处理 ...

  3. GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图

    GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图 核心js文件 调用方式 调用结果 核心js文件 #通过定义加载天地图js文件,引用并组织 ...

  4. GIS开发之二维地下管线综合管理系统(Arcgis)第一节 总体介绍

    二维地下管网综合管理系统(下称二维管网系统)是将地理信息系统.数据库.Web可视化技术用于城市地下管网信息管理,通过有效的数据采集.数据入库.条件查询.综合分析,使得各权属和业务部门能够方便的掌握地下 ...

  5. Android | 教你如何开发扫二维码功能

    华为机器学习服务(ML Kit) 提供机器学习套件,为开发者应用机器学习能力开发各类应用提供优质体验.得益于华为长期技术积累,ML Kit 为开发者提供简单易用.服务多样.技术领先的机器学习能力,助力 ...

  6. HBuilder webApp开发(十三)二维码扫描

    好久没有写<HBuilder webApp App开发>这个专栏了.这周的这两天暂时比骄没事,就对着官方文档barcode写了这个二维码扫描的Demo. 以前做原生开发的时候,关于二维码扫 ...

  7. 独立版微信动态二维码活码管理系统免授权版

    正文: 完整标题: 独立版微信动态二维码活码管理系统免授权版,微信活码二维码系统,带充值支付 多维度的数据统计分析,实现精准营销 提供数据统计报告!提供精美的分析报告,让你的微信营销数据化! 自定义域 ...

  8. Java二维数组实现学生管理系统

    Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...

  9. 结对开发--求二维数组的最大子数组

    小组成员:信1201-1班  黄亚萍 信1201-1班  袁亚姣 一.题目要求 程序要使用的数组放在一个叫 input.txt 的文件中,  文件格式是: 数组的行数, 数组的列数, 每一行的元素,  ...

最新文章

  1. 开发log4j配置_Spring 使用 Log4J 记录日志
  2. Linux系统挂载ntfs分区
  3. Hud 敌兵布阵 --线段树的插点问线
  4. widget模式弄不出来_【春天文化】互联网时代的教育模式培养精英
  5. C++语法:构造函数以及析构函数
  6. 为什么Locust单进程运行模式下只能用到一个处理器的能力?
  7. POJ1061 青蛙的约会(扩展欧几里得)题解
  8. Flex练习-打游戏
  9. Charles for Mac(抓包工具)
  10. 进程外Session(用数据库)
  11. easypoi/easyExcel导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法
  12. qt 设置按钮大小_QT使用教程(四)之初体验
  13. 关于5G关键技术——Massive MIMO 基本原理中波束的探究
  14. 在线PHP源码混淆、加密
  15. 395. Longest Substring with At Least K Repeating Characters 1
  16. 微信消息记录如何恢复
  17. Spring Data JPA 原理与实战第二天 掌握Repoitory和DQM
  18. selenium + bs4 +requests 爬取全国电动汽车充电站数据
  19. 核磁共振成像读片指南(二)
  20. layer opcode oracle,ORACLE 事件追踪

热门文章

  1. 中国魔笛痛改前非做好准备 国足不能失去传奇大师
  2. P vs. NP:从一则数学家谋杀案说起
  3. 千里马 android framework之MotionEvent.ACTION_CANCEL怎么产生-讨厌的android触摸面试题
  4. 智能驾驶功能软件平台设计规范 第二部分:感知融合功能服务接口
  5. 被骗几十万总结出来的Ddos攻击防护经验!(转载)
  6. 基于Greenplum构建下一代数据分析平台
  7. XSS和CSRF两种跨站攻击比较
  8. 客户端伪造代理服务器ip进行sql注入
  9. 计算机主板维修高手,计算机电路基础与维修高手
  10. 桌面计算机硬盘打不开怎么办,电脑硬盘打不开提示格式化怎么办