def _score_bearing_match(self): if not self.match: return if self.match_rev: delta1 = geo.compass_bearing_delta(self.from_bearing,self.match.to_bearing) delta2 = geo.compass_bearing_delta(self.to_bearing,self.match.from_bearing) else: delta1 = geo.compass_bearing_delta(self.from_bearing,self.match.from_bearing) delta2 = geo.compass_bearing_delta(self.to_bearing,self.match.to_bearing) p1 = 1 - (delta1/180.0) p2 = 1 - (delta2/180.0) self._set_score('score_bearing2', _prob_to_score(p1*p2))
def next(self): jct = self.end() bestDelta = 180 bestSpoke = None; for spoke in jct.spokes(): delta = geo.compass_bearing_delta(self.bearing,spoke.bearing) if delta<bestDelta: bestSpoke = spoke bestDelta = delta if bestDelta > 90: return None return bestSpoke