def getNeighborSegment(segmentlist, crossdata): neighborSegmentList = [] jointC = RoadClass.Joint(crossdata) # print (jointC) for item in segmentlist: if (crossdata in item.cordinations): if not ((crossdata == item.getHead()) | (crossdata == item.getTail())): print("\n\n警告,该点不是交叉!!!!") if (crossdata == item.getHead()) | (crossdata == item.getTail()): # if (itemC is itemS.getHead())|(itemC is itemS.getTail()): #之前用is来判断,不对,隐藏的bug过了好久才发现。 jointC.appendNeighborSegment(item) # 如果交叉点的邻居大于2(连接的子路段个数大于2),为交叉路口。 if len(jointC.neighborSegment) >= 2: for data in jointC.getNeighborSegment(): neighborSegmentList.append(data.getID()) return neighborSegmentList
def getJointlist(segmentlist, crosslist): jointlist_1 = [] for itemC in crosslist: # print(itemC) jointC = RoadClass.Joint(itemC) # print (jointC) for itemS in segmentlist: if (itemC in itemS.cordinations): if not ((itemC == itemS.getHead()) | (itemC == itemS.getTail())): print("\n\n警告,出现未划分的情况!!!!") if (itemC == itemS.getHead()) | (itemC == itemS.getTail()): # if (itemC is itemS.getHead())|(itemC is itemS.getTail()): #之前用is来判断,不对,隐藏的bug过了好久才发现。 jointC.appendNeighborSegment(itemS) # 如果交叉点的邻居大于2(连接的子路段个数大于等于2),为交叉路口。 if len(jointC.neighborSegment) >= 2: jointlist_1.append(jointC) jointlist = [] for clist in jointlist_1: if clist not in jointlist: jointlist.append(clist) return jointlist