def edv(row): geometry_sou = row['sou_feature'] geometry_tar = row['tar_feature'] if geometry_sou.geom_type == "Point" and geometry_tar.geom_type == 'Point': distance = point_distance(geometry_sou, geometry_tar) else: # Obtain all the vertices of entities if geometry_sou.geom_type == 'Polygon': vertices1 = list(geometry_sou.exterior.coords) else: vertices1 = list(geometry_sou.coords) vertices1 = MultiPoint(vertices1) if geometry_tar.geom_type == 'Polygon': vertices2 = list(geometry_tar.exterior.coords) else: vertices2 = list(geometry_tar.coords) vertices2 = MultiPoint(vertices2) distance = vertices1.distance(vertices2) return distance