code: def GetMatchingShape(pattern_poly, trip, matches, max_distance, verbosity=0):
    
    if len(matches) == 0:
      print ('No matching shape found within max-distance %d for trip %s '
             % (max_distance, trip.trip_id))
      return None
  
    if verbosity >= 1:
      for match in matches:
        print("match: size %d" % match.GetNumPoints())
    scores = [(pattern_poly.GreedyPolyMatchDist(match), match)
              for match in matches]
  
    scores.sort()
  
    if scores[0][0] > max_distance:
      print ('No matching shape found within max-distance %d for trip %s '
             '(min score was %f)'
             % (max_distance, trip.trip_id, scores[0][0]))
      return None
  
    return scores[0][1]
docs: Tries to find a matching shape for the given pattern Poly object,
    trip, and set of possibly matching Polys from which to choose a match.