【发布时间】:2021-09-13 09:24:40
【问题描述】:
我使用 Shapely 创建了一个圆圈,并希望使用 LineString 将其分成两个。
我按如下方式创建了圈子
from functools import partial
import pyproj
from shapely import geometry
from shapely.geometry import Point, Polygon, shape, MultiPoint, LineString, mapping
from shapely.ops import transform, split
radius = 92600
lon = 54.08
lat = 17.05
local_azimuthal_projection = "+proj=aeqd +R=6371000 +units=m +lat_0={} +lon_0={}".format(
lat, lon
)
wgs84_to_aeqd = partial(
pyproj.transform,
pyproj.Proj("+proj=longlat +datum=WGS84 +no_defs"),
pyproj.Proj(local_azimuthal_projection),
)
aeqd_to_wgs84 = partial(
pyproj.transform,
pyproj.Proj(local_azimuthal_projection),
pyproj.Proj("+proj=longlat +datum=WGS84 +no_defs"),
)
center = Point(float(lon), float(lat))
point_transformed = transform(wgs84_to_aeqd, center)
buffer = point_transformed.buffer(radius)
# Get the polygon with lat lon coordinates
circle_poly = transform(aeqd_to_wgs84, buffer)
对于分行器,我有以下内容:
splitter = LingString([Point(54.79,16.90), Point(53.56,16.65)])
现在我想查看两个分割形状,所以我使用了分割功能。
result = split(circle_poly, splitter)
但是,这只会产生相同的圆形而不是两个形状。 最后我想用分割的一部分来形成另一种形状。
【问题讨论】:
标签: python polygon geopandas shapely