交通路线空间编号功能
程序员文章站
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天,其中有非常多的逻辑代码,需要对各种各样的路线进行分析,而且路网数据不想理,需要添加大量的逻辑方法: