# 计算新手手册

作者:胡飞玲,陶小明 时间: 2020-10-16

# 一、计算技术栈介绍

# 1. 工作内容

计算技术栈涉及的主要是空间数据,内容多是数据分析和数据管理相关,需要 GIS 专业背景。目前公司计算技术栈的工作内容主要有两类:一类为前端产品提供空间数据相关计算服务;第二类为开发 CS 模式的空间数据管理相关的工具产品。目前计算的涉及开发产品类型主要有以下几种:

1)服务类-SOE 版:C#+ArcEngine

2)服务类-WebService 版:C#+ArcEngine | Java+Supermap IObject

4)工具类-WPF 版:C#+ArcEngine

5)工具类-WinFrom 版:C#+ArcEngine | C#+Supermap IObject

# 2. GIS 平台

目前计算采用 GIS 平台主要 ArcGISSupermap 。部分产品中考虑到实际情况会一些第三方开源 gis 库做辅助

1)ArcGIS

ArcGIS 采用版本会根据项目情况而定,目前从10.1 到 10.7 各个版本都有涉及。

2)SuperMap

SuperMap 版本都根据项目而定,大多采用最新 10i

3)开源 GIS 库

第三方开源 gis 库有 GDAL, Geotools,Teigha 等

# 3. 开发语言

先前计算主要开发语言是 C#+ArcEngine ,后续因产品国产化,跨平台等原因,新增 Java+Supermap IObject。

目前针对不同类型产品,开发选型情况如下:

1)服务类产品开发环境: C#+ArcEngine | Java+Supermap IObject

2)工具类的开发语言:C#+ArcEngine | C#+Supermap IObject

C# 编译软件目前一般采用 Visual Studio 2017 ,C# 工具类采用 DEV 控件

JAVA 编译软件采用 InteliJ IDEA

# 4. 数据库

我们的数据库通常分三类:业务库,空间库,文件库

1)业务库:业务库中存储系统所依赖的业务表,只单纯存储普通的业务数据。

2)空间库:空间库只单纯存储系统的空间数据

3)文件库:一般采用 Mongo 存储文件,这个库不是必须,视具体产品功能而定

目前我们支持的数据库平台包括以下几种:

1)Oracle

以前我们所有项目不管是业务库还是空间库都采用 Oracle 数据库存储,目前部分项目会采用。

2)PostgreSQL,PostGIS

考虑到产品国产化,目前我们部分数据库采用 PostgreSQL 存储,后续可能会越来越多

3)Mongo

目前部分涉及到文件存储的产品,会采用 Mongo 存储文件,特别是容器化部署,功能中文件传输都会存储到 Mongo 库中

# 5. 计算产品

产品分类 产品 开发语言 产品介绍
服务类 国土空间规划一张图服务—ArcGIS 版 C#+ArcEngine ArcGIS 版国土空间一张图计算服务
服务类 国土空间规划一张图服务—超图版 JAVA+Supermap 超图版国土空间一张图计算服务
服务类 DME 模型服务—ArcGIS 版 C#+ArcEngine ArcGIS 版模型后台服务
服务类 DME 模型服务—超图版 JAVA+Supermap 超图版模型后台服务
服务类 自动发布地图服务 C#+ArcEngine 发布地图服务接口,给模型调用
服务类 地图服务代理服务 C# 代理地图服务,可权限管控
服务类 旧版一张图计算服务 C#+ArcEngine 以前多规产品的计算服务
工具类 DDP—ArcGIS 版 C#+ArcEngine ArcGIS 版数据质检入库管理
工具类 DDP—超图版 C#+Supermap 超图版数据质检入库管理
工具类 质检工具—WPF 版 C#+ArcEngine 美化版质检工具
工具类 一张图基础版 C#+ArcEngine 一张图基础版
工具类 老版 DCP C#+ArcEngine 老版的数据质检入库管理

# 6. 工作流程

一般新功能开发流程如下:

(1)需求人员提出功能需求;

(2)开发人员讨论功能技术可行性分析以及人力时间成本,给出截至时间点;

(3)前后台与计算初对接,如功能分配,接口对接;实施与开发对接,如环境部署,配置;

(4)开发人员内部任务分配:根据工作量合理安排人力开发;

(5)开发者创建分支,根据开发规范实现功能开发,完成自测;合并代码,并测试,接口可用 Postman 测试;

(6)前后台计算联调。计算给出测试样例,前端调试。若出现问题前端给出测试参数以及接口错误信息

一般查找问题流程如下:

(1)实施人员发现问题,并定位问题是属于前端/后台/计算;

(2)查看接口返回结果信息;

(3)去问题集锦里查看是否有该问题解决方案;

(4)查看日志信息,日志不足情况下可增加日志定位具体位置;

(5)检查相关配置;

(6)跟踪代码。

问题反馈:

(1)项目反馈:

检查到 bug 需向对应的产品开发人员反馈 bug 情况,以及是否有解决方案,或者将解决方案直接反馈;

新增功能,看实际需求将功能反馈给产品开发人员,看是否产品需新增。

(2)产品反馈

产品开发成员功能修改后,及时向开发负责人反馈。开发人员及时向产品经理反馈。该产品变更可以书面形式向该计算团队全体人员反馈。

# 7.计算必备技能训练

1)创建业务库:Oracle,Postgresql (学会安装数据库)

2)备份,迁移业务库:Oracle,Postgresql

3)创建空间库 (学会安装 ArcGIS 环境,安装超图环境)

​ Oracle+ArcGIS 版空间库,Postgresql+ArcGIS 空间库,

​ Postgresql+Supermap 空间库,PostGIS+Supermap 空间库

  1. 备份,迁移空间库(空间库类型同以上)

5)熟悉 ArcGIS 平台下不同类型空间数据的新建,编辑,查看以及特性和区别 (熟悉 Arcmap 操作)

6)属性 Supermap 平台不同类型空间数据的新建,编辑,查看以及特性和区别 (熟悉 Supermap Desktop 操作)

5)发布 ArcGIS 地图服务,熟悉各种不同地图服务类型以及各种地图服务特性和常见操作 (熟悉 ArcGIS Server)

6)发布 Supermap 地图服务,熟悉各种不同地图服务类型以及各种地图服务特性和常见操作 (熟悉超图 Server)

7)熟悉 git 的操作

8)服务类 ArcGIS 版:从零开发一个 WebAPI 服务,实现数据叠加分析 (C#)

9) 服务类 ArcGIS 版:从零开发一个 SOE 服务,实现数据查询统计(C#)

10) 服务类 Supermap 版:从零开发一个 WebServices 服务,实现数据叠加分析 (JAVA)

# 8. 计算资源

计算 git 库:http://elb-791125809.cn-northwest-1.elb.amazonaws.com.cn:5335/xdata/FellowTravellers/GIS

计算知识库:

计算产品常见问题:https://docs.qq.com/sheet/DQ0RXdHdNWktNRWtZ?tab=69vup1

计算产品 git 库:https://docs.qq.com/sheet/DQ0RXdHdNWktNRWtZ?tab=69vup1

计算安装软件:\192.168.1.177\2 软件