GIS开发之二维地下管线综合管理系统(Arcgis)第二节 技术架构
目录
- 架构
- 技术选型
- 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组件作为系统的发布工具。
代码目录
按照系统开发的逻辑架构,划分系统层级,主要包括业务逻辑层、数据访问层、通用层、显示层四个部分,每部分具体说明如下:
- 逻辑层 BLL
- 实现缓存处理
- 实现地下管线设施类映射
- 实现地下管线逻辑结构映射
- 实现菜单管理
- 数据访问层DAL
- 实现缓存数据处理
- 实现管线设施类数据访问
- 实现管线逻辑结构数据访问
- 实现菜单数据访问
- 通用层COMMON
- 缓存工具
- html处理工具
- 日志工具
- xml解析工具
- 界面显示层WebUI
- 样式
- js封装逻辑
- 页面
- 接口逻辑
- 静态资源,图片、字体等
- web配置
开发参考资料
- vue开发官网
- arcgis api官方教程
- html教程
- css教程
- js教程
- asp.net教程
关注以下公众号,及时发布各种技术交流,并下载相关文档和程序
GIS开发之二维地下管线综合管理系统(Arcgis)第二节 技术架构相关推荐
- GIS开发之二维地下管线综合管理系统(Arcgis)第四节 查询(2)
目录 1.前言 2.功能介绍 2.1 关于QueryTask实现空间查询和属性查询 3.示例代码 3.1 QueryTask 4.参考资料 1.前言 上节主要和大家分享了点击查询相关的参数设置和前 ...
- GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder
GIS开发之二维地下管线综合管理系统(Arcgis)第三节 使用python和modelbuilder ArcGIS python使用 modelbuilder使用 在管网系统的功能中,高效的数据处理 ...
- GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图
GIS开发之二维地下管线综合管理系统(Arcgis)第四节 使用arcgis api for js 加载天地图 核心js文件 调用方式 调用结果 核心js文件 #通过定义加载天地图js文件,引用并组织 ...
- GIS开发之二维地下管线综合管理系统(Arcgis)第一节 总体介绍
二维地下管网综合管理系统(下称二维管网系统)是将地理信息系统.数据库.Web可视化技术用于城市地下管网信息管理,通过有效的数据采集.数据入库.条件查询.综合分析,使得各权属和业务部门能够方便的掌握地下 ...
- Android | 教你如何开发扫二维码功能
华为机器学习服务(ML Kit) 提供机器学习套件,为开发者应用机器学习能力开发各类应用提供优质体验.得益于华为长期技术积累,ML Kit 为开发者提供简单易用.服务多样.技术领先的机器学习能力,助力 ...
- HBuilder webApp开发(十三)二维码扫描
好久没有写<HBuilder webApp App开发>这个专栏了.这周的这两天暂时比骄没事,就对着官方文档barcode写了这个二维码扫描的Demo. 以前做原生开发的时候,关于二维码扫 ...
- 独立版微信动态二维码活码管理系统免授权版
正文: 完整标题: 独立版微信动态二维码活码管理系统免授权版,微信活码二维码系统,带充值支付 多维度的数据统计分析,实现精准营销 提供数据统计报告!提供精美的分析报告,让你的微信营销数据化! 自定义域 ...
- Java二维数组实现学生管理系统
Java二维数组实现学生管理系统 一.预备知识 1.二维数组的创建1) DataType [][] name=new DataType[10][];2) DataType [][] name=new ...
- 结对开发--求二维数组的最大子数组
小组成员:信1201-1班 黄亚萍 信1201-1班 袁亚姣 一.题目要求 程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是: 数组的行数, 数组的列数, 每一行的元素, ...
最新文章
- 开发log4j配置_Spring 使用 Log4J 记录日志
- Linux系统挂载ntfs分区
- Hud 敌兵布阵 --线段树的插点问线
- widget模式弄不出来_【春天文化】互联网时代的教育模式培养精英
- C++语法:构造函数以及析构函数
- 为什么Locust单进程运行模式下只能用到一个处理器的能力?
- POJ1061 青蛙的约会(扩展欧几里得)题解
- Flex练习-打游戏
- Charles for Mac(抓包工具)
- 进程外Session(用数据库)
- easypoi/easyExcel导出excel(xls,xlsx)后,文件打开错误或乱码的解决方法
- qt 设置按钮大小_QT使用教程(四)之初体验
- 关于5G关键技术——Massive MIMO 基本原理中波束的探究
- 在线PHP源码混淆、加密
- 395. Longest Substring with At Least K Repeating Characters 1
- 微信消息记录如何恢复
- Spring Data JPA 原理与实战第二天 掌握Repoitory和DQM
- selenium + bs4 +requests 爬取全国电动汽车充电站数据
- 核磁共振成像读片指南(二)
- layer opcode oracle,ORACLE 事件追踪
热门文章
- 中国魔笛痛改前非做好准备 国足不能失去传奇大师
- P vs. NP:从一则数学家谋杀案说起
- 千里马 android framework之MotionEvent.ACTION_CANCEL怎么产生-讨厌的android触摸面试题
- 智能驾驶功能软件平台设计规范 第二部分:感知融合功能服务接口
- 被骗几十万总结出来的Ddos攻击防护经验!(转载)
- 基于Greenplum构建下一代数据分析平台
- XSS和CSRF两种跨站攻击比较
- 客户端伪造代理服务器ip进行sql注入
- 计算机主板维修高手,计算机电路基础与维修高手
- 桌面计算机硬盘打不开怎么办,电脑硬盘打不开提示格式化怎么办