利用ogr2ogr从PostGIS中导出/导入Tab/Dxf/Geojson等格式数据

ogr2ogr Demo Command

先查看下当前gdal支持的全部格式,部分gdal版本可能不支持PostGIS。
如出现PostgreSQL表名支持。
在这里插入图片描述

#全部支持的格式
ogrinfo --formats | sort
#AVCBin -vector- (rov): Arc/Info Binary Coverage
#AVCE00 -vector- (rov): Arc/Info E00 (ASCII) Coverage
#BAG -raster,multidimensional raster,vector- (rw+v): Bathymetry Attributed Grid
#CAD -raster,vector- (rovs): AutoCAD Driver
#Carto -vector- (rw+): Carto
#CSV -vector- (rw+v): Comma Separated Value (.csv)
#CSW -vector- (ro): OGC CSW (Catalog  Service for the Web)
#DGN -vector- (rw+v): Microstation DGN
#DXF -vector- (rw+v): AutoCAD DXF
#EDIGEO -vector- (rov): French EDIGEO exchange format
#EEDA -vector- (ro): Earth Engine Data API
#Elasticsearch -vector- (rw+): Elastic Search
#ESRI Shapefile -vector- (rw+v): ESRI Shapefile
#ESRIJSON -vector- (rov): ESRIJSON
#FITS -raster,vector- (rw+): Flexible Image Transport System
#FlatGeobuf -vector- (rw+v): FlatGeobuf
#Geoconcept -vector- (rw+v): Geoconcept
……

进入ogr2ogr目录/测试,应当配置环境变量

#你的gdal目录
cd "C:\Program Files\GDAL"

导出

导出数据 geojson
./ogr2ogr.exe -f "GeoJSON" ~your-pathresult.geojson PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" "your_tablename(geom)"

导出数据 tab

./ogr2ogr.exe -f "MapInfo File" ~your-pathresult.tab PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" "your_tablename(geom)"

导出数据 SQLite

./ogr2ogr.exe -f "SQLite" ~your-pathresult.db PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" "your_tablename(geom)"

导出数据 DXF

./ogr2ogr.exe -f "DXF" ~your-pathresult.dxf PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" "your_tablename(geom)"

导入

geojson 导入数据 -插入

./ogr2ogr.exe -f "yourpostgresQL" PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" ~your-pathresult.json -nln target_table -append

geojson 导入数据 -新、覆盖

./ogr2ogr.exe -f "yourpostgresQL" PG:"host=localhost dbname=yourdbName user=yourpostgres password=yourpwd port=yourport" ~your-pathresult.json -nln target_table -overwrite
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将OGR格式的矢量数据导出为JSON格式,你可以使用`ogr`库的`ogr2ogr`命令行工具或使用Python的`ogr`模块来实现。以下是使用`ogr`模块的示例代码: ```python from osgeo import ogr # 输入和输出文件路径 input_file = 'your_input_file.shp' output_file = 'your_output_file.json' # 打开输入数据源 input_ds = ogr.Open(input_file) input_layer = input_ds.GetLayer() # 创建输出数据源 output_driver = ogr.GetDriverByName('GeoJSON') output_ds = output_driver.CreateDataSource(output_file) output_layer = output_ds.CreateLayer('', None, ogr.wkbPolygon) # 复制输入图层的字段定义到输出图层 input_layer_defn = input_layer.GetLayerDefn() for i in range(input_layer_defn.GetFieldCount()): field_defn = input_layer_defn.GetFieldDefn(i) output_layer.CreateField(field_defn) # 复制输入图层的要素到输出图层 for feature in input_layer: output_layer.CreateFeature(feature) # 关闭数据源 input_ds = None output_ds = None ``` 在这个示例,我们首先指定输入文件路径和输出文件路径。然后,我们使用`ogr`库打开输入数据源,并获取输入图层。 接下来,我们创建输出数据源,并指定输出驱动为GeoJSON。然后,我们创建输出图层,并复制输入图层的字段定义到输出图层。 然后,我们使用一个循环来遍历输入图层的要素,并将它们复制到输出图层。 最后,我们关闭输入和输出数据源,完成导出过程。 请确保你已经安装了GDAL库,并将代码的`your_input_file.shp`替换为你自己的输入矢量数据文件路径,将`your_output_file.json`替换为你想要保存的输出JSON文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丷丩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值