def get_h_line( pts0: MultiPoint, pts1: MultiPoint, ) -> LineString: if isinstance(pts1, Point): pts1 = MultiPoint([pts1]) if isinstance(pts0, Point): pts0 = MultiPoint([pts0]) eps = 1e-6 hdist = pts0.hausdorff_distance(pts1) ls = [] for p0 in pts0: d = p0.distance(pts1) if abs(d - hdist) < eps: #return LineString(nearest_points(p0,pts1)) ls.append(LineString(nearest_points(p0, pts1))) for p1 in pts1: d = p1.distance(pts0) if abs(d - hdist) < eps: #return LineString(nearest_points(p0,pts1)) ls.append(LineString(nearest_points(p1, pts0))) return MultiLineString(ls)