前言:前一段时间公司有个项目需要分析排水户到污水厂的流向,点击地图上的排水户在管网上生成到污水厂的流向。网上查了一系列资料,看需要SOE构建几何网络,使用下游溯源分析功能才能实现污水厂流向的分析。
在这里需要感谢王培晓同学对ArcGIS Server中SOE开发的详细介绍ArcGIS Server之扩展几何网络分析。
本人的代码就是基于他的代码进行功能的实现,在他的代码的基础上进行了升级和更正(他的代码里有一部分接口是缺失的,我在后面会给予说明,还有就是他所实现的功能不能显示流向的箭头,流向箭头的功能我进行了优化改造)。
实现这个功能我进行了以下几个步骤

1.首先在arcmap中研究怎么使用几何网络分析功能,以前对这块没有进行过实验,相当于重新搞了一遍实验教程。

1.1

首先在arccatlog或者arcmap的右侧目录里新建个人地理数据库,在新建的个人地理数据库中选择新建要素数据集,右键新建的要素数据集,选择导入,多个要素,将我们准备好的要进行构建几何网络分析的要素数据导入,我这边导入了三个要素,一个是排水户数据图层(源),一个是管网数据图层(网络),一个是污水厂数据图层(汇),

1.2

导入数据后,继续右键要素数据集,选择新建几何网络,打开向导。主要需要选择的是将污水厂和排水户进行设置连接要素类型,选择为源或汇,权重的话流向分析用不到不用进行设置,经过这些设置就能构建几何网络了,将构建的几何网络拖入到arcmap中.

1.3

在构建几何网络分析的时候设置了源和汇的图层都会生成一个新的字段AncillaryRole,这个字段的默认值为none,需要打开编辑功能更改其属性值,将流向的终点设置为汇,起点设置为源(我只设置了一个汇,没设置源,有了汇,从每条管线的起点都会向汇流入,从而生成流向)这个我没设置源,让他值默认为none,我这个数据是拷的别的地方的,里面有个字段enabled,一开始这个的值为false,我怎么都生成不了流向,把这个改成了true才生成了流向。
这个我设置了汇,有了汇,自然就向汇流,流向自然就生成了

1.4

用arcmap中几何网络分析功能,尝试生成流向。英文版的翻译好像是unitty开头的,记不清了,总之和汉化版的不是同一个位置。开启编辑功能,这时分析流向的按钮才能变成可用状态,进行流向分析。



1.5

如果发现流向没什么问题,就按照征程流程发布动态地图服务就可以了。

2 构建SOE

构建SOE这部分可以参考王培晓同学的代码,从他的github上下载相关的代码,这里指出他的代码的一些没有描述的问题(也就是我遇到的坑)

2.1

首先是版本的问题,他只说了10.2的能用,10.1的需要修改才能用,我自己本身是10.2的版本所以直接就能使用,后来发现现场是10.1版本,我又把自己电脑的版本改成了10.1,改成10.1后发现VS2012无法编译,后来发现这是一个总所周知的bug
在SOE工程文件下找到.csproj文件,用记事本打开,找到 Project="KaTeX parse error: Expected 'EOF', got '\ESRI' at position 24: …ExtensionsPath)\̲E̲S̲R̲I̲\ESRI.ArcGIS.Ad…(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.Server.11.targets’)" 修改为
“Project="KaTeX parse error: Expected 'EOF', got '\ESRI' at position 24: …ExtensionsPath)\̲E̲S̲R̲I̲\ESRI.ArcGIS.Ad…(MSBuildExtensionsPath)\ESRI\ESRI.ArcGIS.AddIns.Server.targets’)" 即可
也就是说如果是10.2版本就要加上.11,10.1版本的就要去掉这个.11。

2.2

第二是代码问题,王同学的代码我下载下来以后,自己运行了一下,发现除了我想要的下游溯源分析功能之外的几何网络分析的所有功能他都写上了(我用不了,难受了),然后我就找到了一本ArcEngine的书找到了下游分析的接口,加上了这么一段,这样就把几何网络分析的几个功能接口补齐了。
此外他的实例中只返回了下游分析的线和汇的点要素数据,无法在地图上显示水的流向箭头问题,(当然如果你们项目不需要展示箭头的话,后面这个介绍箭头显示的可以不用了),后来经过AE开发的同事指导,又加了一段代码,多返回一个字段EsirFlowDieection,该字段一般有两个值,当值为EsriFDWithFlow时,表示流向和矢量化方向相同,当值为EsriFDAgainstFlow时,来表示水的流向和矢量化方向相反。下面我详细介绍下这个字段的原理

下图1 2 3分别是指2我创建这个线要素时候点的顺序,红色箭头表示实际水的流向,我们发现1 2 3顺序的方向就是水流的方向,这时EsirFlowDieection的值就是EsriFDWithFlow,表名方向一致。

当构建线要素和水流方向不一致时,这时EsirFlowDieection的值就是EsriFDAgainstFlow,表名流向和矢量化方向相反。

为什么要做这个分析呢,
如下图所示,如果在构建线要素时候先通过[1,2]顺序构建了线要素A,又通过[3,2]顺序构建了线要素B,请求后端A、B两个线要素会返回A:[1,2],B:[3,2]。
当我们生成流向箭头的时候是根据线要素的坐标顺序来生成的,如果给的线要素是[1,2]格式,那么生成的流向就是1→2,如果给的线要素是[3,2]格式,那么生成的流向就是3→2,如果照这么处理下去就会出现1→2,3→2,和我们实际1→2→3的流向不一致,所以这个EsirFlowDieection的属性值就很重要了,当流向是2→3,返回的线要素是[3,2]的时候,EsirFlowDieection的值就为EsriFDAgainstFlow,我们对线要素的数组顺序进行调换,这样就能保证生成流向箭头方向和流向一致了。

不知道大家能不能看懂,感觉写的越多越乱。

3

这样SOE项目就搭建完了,运行编译一下就能得到SOE的文件了,将SOE文件上传到arcgis server扩展上,然后开启扩展即可,当然也有人扩展失败,原因大致有两个,一是电脑上SDK版本问题,二是安装server时候framework 3.5环境没安装,还有浏览器的原因,谷歌不行要到IE上传,问题不一而足,网上大多都能搜到。

4

现在server端试一下能否进行分析

下面的三个没用到,也没具体研究,有障碍线、障碍点,用来做爆管分析之类用的到吧。

这样就能查到返回的线要素和点要素,以及流向属性了。就可以在前端进行渲染展示了。

arcgis serverSOE几何网络分析相关推荐

  1. ArcGIS总结——矢量数据分析之网络分析(上)

    GIS空间分析中的网络分析是对地理网络(如交通网络).城市基础设施网络(如各种网线.电缆线.排水管道等)进行地理分析和模型化的过程,通过研究网络的状态及模拟和分析资源在网络上的流动和分配情况,解决网络 ...

  2. ArcGIS API For JS之网络分析(临近设施分析)

    ArcGIS 提供两种网络分析,即基于Geometric Network的有向网络或者设施网络和基于Network Dataset的无向网络,在这里网络的分析指后者,ArcGIS api支持网络分析中 ...

  3. [ArcGIS] 空间分析(五) 网络分析

    网络的组成 线状要素 点状要素 网络分析工具 传输网络分析 Network Analyst 网络数据集的建立 基本功能 路径分析 Route Analysis 服务区域分析 Network Servi ...

  4. ArcGIS网络分析之常见问题分析、诊断篇

    文章目录 一.停靠点无效 二.构建网络数据集时,检测到孤立点 三.求解失败 四.分析结果不符合预期 1.AB两点间没有路 2.服务区分析,设置中断值1公里,为什么结果是1.3公里? 3.ArcGIS ...

  5. 怎么将arcgis新建工具条如何保存_ArcGIS中寻找最短路径的方法

    1 流程图  将两个道路数据统一坐标系,然后合并建立数据集,将未联通的道路路线进行结合,对接便后的道路数据集构建网络,使用追踪分析查找两点间最短路径,流程图如图1-1所示. 图1-1 流程图 2 操作 ...

  6. 网络分析——路径分析

    网络分析-- 路径分析 一.实验背景 在远距离送货,物资派发.急救服务和邮递等服务中,经常需要在一次行程中同时访问多个站点(收货方.邮件主人.物资储备站等),如何寻找到一个最短和最经济的路径,保证访问 ...

  7. 利用网络分析工具对城市管道网络进行分析 对一个物流公司的运送路线进行合理的规划

    1.掌握ArcGIS中的几何网络分析功能,综合利用网络分析工具对城市管道网络进行分析: 数据: (1)燃气管网网络(gas_network) (2)故障点(guzhangdian) 要求:确定可能发生 ...

  8. ArcGIS 10.1 for Server SOE介绍及开发

    ArcGIS 10.1 for Server SOE介绍及开发 第一章 SOE由来 在ArcGIS 10.1中ArcGIS Server不在支持DCOM方式的连接,这也就意味着我们不能通过本地方式的连 ...

  9. 基于ArcGIS API for WPF路径分析源码实例

    说明: 本实例主要演示网络分析数据集制作,服务发布,最后基于ArcGIS API for WPF做路径分析. 本实例参考ArcGIS官方文档,想了解GIS网络分析可查阅官方文档. 本实例数据为西藏道路 ...

最新文章

  1. 数据库开发基本操作-关于sql server 2005 未开放1433端口的问题
  2. 学习CAS实现SSO单点登录
  3. 如何去除table的边框_如何擦玻璃,这些擦玻璃知识很实用
  4. 【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
  5. BeautifulSoup操作xml文件
  6. 【首发】徐亦达团队新论文推荐:模限界矩阵分解
  7. 用MS.NET开发三层结构应用程序[转载]
  8. WebSocket使用80端口的方法
  9. CSDN markdown编辑器 页面内跳转目录
  10. arduino yield函数的作用_Python里Yield关键词的作用
  11. python安装换源_Python切换pip安装源的方法详解
  12. 爆!看过这么多教程吗?不管你看没看过,我反正是没看过!
  13. 机器学习常见的优化算法
  14. 华为笔记本没有HOME键和END键
  15. spack file hierarchy system
  16. stata在进行meta分析时出现command metabias is unrecognized,如何解决?
  17. Qiyuan-接小球游戏3.0
  18. 如何进行CMDB数据运营?
  19. 汽车之家汽车品牌Logo信息抓取 DotnetSpider实战[三]
  20. 服务器流式响应,HttpClient在收到服务器响应后无法停止流式传输

热门文章

  1. 分享摩托罗拉milestone手机升级到Android 2.2的过程
  2. CSS属性 —— color属性
  3. 不养“电动爹”,你永远不知道冬天有多冷
  4. Chrome 无法检测 Lodop 插件
  5. Linux网络配置nmtui激活网卡失败
  6. 【学习总结Day32】
  7. 半径为10的球面 matlab,matlab圆环面和球面的组合
  8. java中的开方方法_java 大整数开方模板与常用方法
  9. 大数据时代:大数据技术意义何在?
  10. nvm node版本切换无效