当前位置: 首页>>代码示例>>Python>>正文


Python Label.getLength方法代码示例

本文整理汇总了Python中label.Label.getLength方法的典型用法代码示例。如果您正苦于以下问题:Python Label.getLength方法的具体用法?Python Label.getLength怎么用?Python Label.getLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在label.Label的用法示例。


在下文中一共展示了Label.getLength方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: expandLabel

# 需要导入模块: from label import Label [as 别名]
# 或者: from label.Label import getLength [as 别名]
    def expandLabel(self, parentLabel):
        """
        """
        expansion = []   # list of labels
        newLabel = None  #
        
        #out_edges = self.graph.edges(parentLabel.getNode(), self.graph)
        #out_edges = [e[2].get('edge') for e in out_edges]
        
        #print "expanding label at" + str(parentLabel.getNode().getAttributes()) + " " + str(len(out_edges))
        
#        for edge in out_edges:
#            print edge.getAttributes()
            
        print "------"
        print "Length " ,len(parentLabel.getNode().getOutEdges()) , parentLabel.getNode().getAttributes().get("nodecounter") 
        for e in parentLabel.getNode().getOutEdges():
            print "Outedge " , e.getAttributes()
        
        for currentEdge in parentLabel.getNode().getOutEdges():
            # check constraints
            
            # import pdb;pdb.set_trace()
            
            length = parentLabel.getLength() + currentEdge.getLength()
            
            print "currentEdge " + str(currentEdge.getAttributes())

            # newLabel = Label(currentEdge.getToNode(), parent=parentLabel, back_edge=currentEdge, length=length)
            newLabel = Label(currentEdge.getOutNode(parentLabel), parent=parentLabel, back_edge=currentEdge, length=length)
            
#            if len(newLabel.getNode().getOutEdges()) == 1:
#                break
            
#            edgeOccurances = newLabel.getOccurancesOfEdge(newLabel)
            
#            isInBridges = True
#            try:
#                self.bridges.index(newLabel)
#            except ValueError:
#                isInBridges = False
#            
#            if (isInBridges) and edgeOccurances > BRIDGE_OVERLAP:
#                print "break (isInBridges)"
#                break
            
            # path length including this segment longer that MAXIMUM_LENGTH 
            # constraint
            if (length > MAXIMUM_LENGTH):
                print "break (MAXLENGTH)"
                break
            
            print ".."
            
            # euclidean distance to endNode > maxLength * distancefactor
            distanceToEndNode = newLabel.getNode().getGeometry().distance(self.end_node.getGeometry())
            totalLength = newLabel.getLength() + distanceToEndNode
            
            if totalLength > (MAXIMUM_LENGTH * DISTANCE_FACTOR):
                print "break : euclidian distance greater than max"
                break
            
            nodeOccurances = newLabel.getOccurancesOfNode(newLabel.getNode())
            
            if nodeOccurances > NODE_OVERLAP:
                print "node occurance break (%d) at %s." % (nodeOccurances, str(currentEdge.getAttributes()))
                break
            
            self.num_labels = self.num_labels + 1
            expansion.append(newLabel)
            
        return expansion
开发者ID:bsnizek,项目名称:mapmatchingimporter,代码行数:74,代码来源:routefinder0.py


注:本文中的label.Label.getLength方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。