code: def GreedyPolyMatchDist(self, shape):
      
      tmp_shape = Poly(shape.GetPoints())
      max_radius = 0
      for (i, point) in enumerate(self._points):
        tmp_shape = tmp_shape.CutAtClosestPoint(point)[1]
        dist = tmp_shape.GetPoint(0).GetDistanceMeters(point)
        max_radius = max(max_radius, dist)
      return max_radius
docs: Tries a greedy matching algorithm to match self to the
      given shape.  Returns the maximum distance in meters of
      any point in self to its matched point in shape under the
      algorithm.
  
      Args: shape, a Poly object.