gdal 创建圆shp
时间: 2023-12-04 20:04:36 浏览: 90
首先,你需要安装GDAL库并在Python中导入它。然后,你可以使用以下代码创建一个圆形的Shapefile:
```python
from osgeo import ogr
def create_circle_shp(output_path, center_x, center_y, radius):
# 创建Shapefile文件
driver = ogr.GetDriverByName('ESRI Shapefile')
data_source = driver.CreateDataSource(output_path)
layer = data_source.CreateLayer(output_path.split(".")[0], None, ogr.wkbPoint)
# 添加字段
layer.CreateField(ogr.FieldDefn("id", ogr.OFTInteger))
layer.CreateField(ogr.FieldDefn("name", ogr.OFTString))
# 创建圆形
circle = ogr.Geometry(ogr.wkbLinearRing)
for i in range(0, 361):
angle_in_radians = i * (math.pi / 180.0)
x = center_x + radius * math.cos(angle_in_radians)
y = center_y + radius * math.sin(angle_in_radians)
circle.AddPoint(x, y)
circle.CloseRings()
# 添加圆形到图层中
feature = ogr.Feature(layer.GetLayerDefn())
feature.SetField("id", 1)
feature.SetField("name", "circle")
point = ogr.Geometry(ogr.wkbPoint)
point.AddPoint(center_x, center_y)
feature.SetGeometry(point)
feature.SetGeometry(circle)
layer.CreateFeature(feature)
feature = None
# 清理并关闭数据源
data_source.SyncToDisk()
data_source = None
```
这个函数需要四个参数:
- `output_path`:输出Shapefile文件的路径。
- `center_x`:圆心的X坐标。
- `center_y`:圆心的Y坐标。
- `radius`:圆的半径。
你可以根据需要更改字段名称和类型,以及更改图层类型(例如,使用`ogr.wkbPolygon`创建多边形)。
阅读全文