美文网首页
polyon merge

polyon merge

作者: hehehehe | 来源:发表于2024-05-25 09:34 被阅读0次

def polygon_merge(id_wkt_dict, buffer_distance=0.000001):
    id_poly_dict = {}
    for id, poly in id_wkt_dict.items():
        buffered_rectangle = poly.buffer(buffer_distance, cap_style=3, join_style=2)
        id_poly_dict[id] = buffered_rectangle

    polygon_dict = {id_: poly for id_, poly in id_poly_dict.items()}

    # 使用unary_union找到所有相互重叠的多边形的合并形状
    merged_polygon: Polygon = unary_union(list(polygon_dict.values()))
    # print(merged_polygon.wkt)
    if merged_polygon.geom_type == "MultiPolygon":
        merged_polygons = merged_polygon.geoms
    elif merged_polygon.geom_type == "Polygon":
        merged_polygons = [merged_polygon]
    else:
        merged_polygons = []

    # 找出每个合并后的多边形中包含的原始多边形的ID
    merged_polygons_with_ids = []
    for merged_poly in merged_polygons:
        merged_ids = [id_ for id_, poly in polygon_dict.items() if merged_poly.intersects(poly)]
        merged_polygons_with_ids.append((merged_ids, merged_poly))

    return merged_polygons_with_ids

相关文章

网友评论

      本文标题:polyon merge

      本文链接:https://www.haomeiwen.com/subject/svdfqjtx.html