连通性分析扩展到线上点

    ArcGIS本身提供连通性分析的功能,但是只可以在节点之间进行连通性的分析,之前做了一个优化,将其扩展到可以通过选取线上的任意一个点进行连通性分析。

    对于初期,我的实现思路有两种:

    第一种:
    通过在地图上点击,以点击处为中心进行设施搜索(利用现成的搜索函数),如果找到的是管点要素(这正是我想要的)便直接获取他作为起点,如果搜索到的是管线要素,那么获取管线上一点,该点距单击点最近(点的获取有些麻烦,坐标有精度问题,这个是否可以确保精确地位于直线上?)。将直线上的点添加到网络中,使之成为ISimpleJunctionFeature(可以通过启动编辑操作进行管网编辑实现)然后进行分析;对于分析的终点,也做同样的处理。

    第二种:
    通过在地图上点击,以点击处为中心进行设施搜索(利用现成的搜索函数),如果找到的是管点要素(这正是我想要的)便直接获取他作为起点,如果搜索到的是管线要素,计算该管线的起点与终点分别到点击点的距离(将点击的点近似看做直线上的点,或者也可以获取直线上到点击点最近的点,这个在之前的文章中说过可以通过两种方法实现),选择其中较近的点作为连通分析的起点。对于分析的终点,也做同样的处理。这中方法要对各种不同的情况进行不同的处理,例如起点和终点的分别是管点、线上点;管点、管点;线上点、管点;线上点、线上点。对于不用的情况确定不同的处理方式。

    本人通过第二种方法实现,确实可行。

原文地址:https://www.cnblogs.com/Jingkunliu/p/2530852.html