用于多个矢量文件的合并。
还有一些关于坐标系的问题尚未解决,不过整体没有问题可以使用,后续填补这些小问题。
import os
from osgeo import ogr, osr
import glob
def mutil_layers_union(input_folder_path, output_shpfile_abspath):
'''本函数用于多个矢量文件的合并
第一个参数为需要合并矢量文件的文件夹路径
第二个是合并后矢量文件的绝对路径'''
ptdriver = ogr.GetDriverByName('ESRI Shapefile')
file_end_with = '.shp'
# 若存在同名图层,则先删除再创键
if os.path.exists(output_shpfile_abspath):
ptdriver.DeleteDataSource(output_shpfile_abspath)
print('The already existed shapefile was successfully deleted.')
out_ds = ptdriver.CreateDataSource(output_shpfile_abspath)
# 拷贝空间索引
# 第一种方法:从原始文件中获取坐标信息
one_shp_provide_spatial = glob.glob(os.path.join(input_folder_path, '*.shp'))[-1]
ds = ogr.Open(one_shp_provide_spatial)
ds_ly = ds.GetLayer()
ds_spatial = ds_ly.GetSpatialRef()
srs = ds_s