欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

交通路线空间编号功能

程序员文章站 2022-03-23 08:33:06
...
交通路线空间编号功能

一、项目需求:路线分为上级路网与下级路网,根据上级路网实现空间编号功能!

交通路线空间编号功能其他:

1、黑线为上级路网图层;

2、红线为目标编号图层;

3、编号原则:路线离上级路网越近,编号为001,根据001路段实现对002路段编号;依次类推,实现对当前下级路网图层数据进行空间编号。

二、实现思路:

1、通过下级路网对上级路网进行空间搜索,选择到下级路网附近对应的上级路网。(注:不能对上级路网进行遍历搜索,为保证效率,需对路线进行局部空间搜索)

2、通过下级路网实现对空间数据进行001搜索,实现方法:通过下级路网端点与上级路网进行距离分析,将端点离上级路网近的进行001编号,然后通过使用类似方法对001路段进行空间搜索002路段,依次类推实现所以路线进行空间编号。

三、难点解析:

1、当前数据过于理想化,对路线的空间编号具有参考价值,对于复杂的现场数据需要对具体数据进行具体分析;从而实现空间要素编号。

2、具体算法与代码,请稍后。

四、代码样例:

while (temppoint != null)
                {
                    for (int i = 0; i < lineinfoList.Count; i++)
                    {
                        if (lineinfoList[i].ldbm == "" || lineinfoList[i].ldbm == null)
                            removelineList.Add(lineinfoList[i]);
                    }
                    if (removelineList.Count != 0)
                    {
                        IList<startendpointinfo> refpotinfo = comparepoint(ref temponepoint, removelineList, ref temppoint);                                                
                        refpotinfo[0].feature.set_Value(ldbmindex, refpotinfo[0].ldbm);
                        refpotinfo[0].feature.Store();
                        removelineList = new List<startendpointinfo>();
                    }
                    else                    
                        temppoint = null;
                    
                }

以上代码是实现空间编号的核心代码。通过001搜索其他路线的代码;

五、写在最后:

以上代码皆为原创:写的不好多多包涵:谢谢!!

空间路线编号,我总共写了5天,其中有非常多的逻辑代码,需要对各种各样的路线进行分析,而且路网数据不想理,需要添加大量的逻辑方法:



相关标签: A