def _pattern_intersection(self, key): """ regarde la cellule voisine pointee par le pattern. Si l'intersection des traces associees a ce pattern avec l'un des patterns de la cellule pointee, alors on peut lier les 2 points d'equilibre (Center of Mass) des 2 patterns pour obtenir un segment du chemin. """ print "CELL:" for pattern, locs in self.all_nodes[key].significant_patterns.iteritems(): if len(locs) > 0: print "current pattern: ", pattern direction_out = pattern[1] dest_cell = self.location_index.neighbor_on_direction(self.all_nodes[key]._center_of_mass(),direction_out) # if dest_cell: print "dest cell: ", dest_cell._center_of_mass() print "current cell: ", self.all_nodes[key]._center_of_mass() for l in locs: pass #print l.latitude, l.longitude dest_cell_patterns = dest_cell.patterns_by_in_direction(Trajectory.reverse_direction(direction_out)) print "dcp: ", dest_cell_patterns # self.pattern_edges.append((self.all_nodes[key]._center_of_mass(), dest_cell._center_of_mass())) if dest_cell_patterns: for _p in dest_cell_patterns: dest_midpoint = Trajectory.center_of_mass(dest_cell.significant_patterns[_p]) source_midpoint = Trajectory.center_of_mass(locs) self.pattern_edges.append((source_midpoint, dest_midpoint)) print "segment added", (source_midpoint, dest_midpoint)