ogr2ogr是否支持以SHP多边形为筛选器从GPKG中选取要素?
解决方法
不需要预先转换格式,ogr2ogr本身支持跨不同空间数据格式直接执行空间查询操作。
直接使用以下shell脚本命令即可完成需求:
ogr2ogr -f GPKG clipped_roads.gpkg roads.gpkg road -where "ST_Intersects(geom, (SELECT ST_Union(geom) FROM region.shp))"
参数说明
-f GPKG:指定输出文件格式为GeoPackageclipped_roads.gpkg:最终生成的目标GPKG文件名roads.gpkg road:输入数据源为roads.gpkg中的road图层-where:设置空间过滤条件,通过ST_Intersects判断道路几何是否与区域图层的合并几何相交;用ST_Union将多个MultiPolygon合并为单个几何,能提升查询效率
补充提示
- 如果需要筛选完全位于区域内的道路,可将
ST_Intersects替换为ST_Within,不过针对LineString类型的道路,通常用相交条件就能筛选出落在区域内的路段,可根据实际需求调整 - 确保使用的GDAL版本足够新,旧版本可能对部分空间函数支持有限
内容的提问来源于stack exchange,提问作者Mads Skjern
相关产品推荐
相关产品推荐

