旋转多边形而不改变内部空间关系

问题描述 投票:0回答:1

我有一个想要旋转的多边形形状文件。我可以进行旋转,但问题是旋转会改变内部顶点。这会产生我不想要的多边形重叠。

这是我尝试过的。

import geopandas as gpd
input_poly_path = "poly3.shp"
gdf = gpd.read_file(input_poly_path)
explode = gdf.explode(ignore_index=True)
ex = explode.rotate(-90, origin="centroid")
g = gpd.GeoDataFrame(columns=['geometry'], geometry='geometry')
g["geometry"] = ex

https://drive.google.com/drive/folders/1HJpnNL-iXU_rReQzVcDGuyWZ8IjciKP8?usp=drive_link 链接到多边形

python polygon geopandas multipolygons
1个回答
0
投票

IIUC,需要将

centroid
unary_union
作为旋转的原点

out = gpd.GeoDataFrame(
    geometry=gdf.rotate(
        angle=-90, origin=list(gdf.unary_union.centroid.coords)[0]
    )
)

使用的输入:

import geopandas as gpd

# download from Google Drive
input_poly_path = (
    "C:/Users/Timeless/Downloads/"
    "share-20240330T125957Z-001.zip!share"
)

gdf = gpd.read_file(input_poly_path, engine="pyogrio")
© www.soinside.com 2019 - 2024. All rights reserved.