如何将ESRI地理数据库格式.gdb导入PostGIS


17

将ESRI地理数据库格式.gdb加载到PostGIS中时遇到问题。我有2.5GB的GDB文件数据。我在互联网上关注了一些教程,但似乎行不通。

  1. 我创建了一个数据库“ SampleNY”
  2. 我是从控制台执行的:

    ogr2ogr -f“ PostgreSQL” PG:“ dbname = SampleNY用户= postgres” NYPluto / Pluto.gdb

但是什么也没发生,我既没有错误也没有成功的操作。我错过任何步骤了吗?


您是否仅限使用ogr2​​ogr?还是您愿意接受其他解决方案?FME应该能够轻松做到这一点。
Fezter

我愿意接受任何可以解决此问题的解决方案?您能否提供有关该操作的更多详细信息?
user3001937 2014年

尝试下载FME。创建一个新的工作台,并添加一个地理数据库读取器和一个PostGIS写入器。
Fezter

1
这是一种商业解决方案。您没有指定仅在寻找免费解决方案。我认为FME有免费试用期。
Fezter

1
我在其他答案中找到了Spatial Data Manager。mapet.altervista.org 这是一个免费的Windows工具,用于在Postgis和其他空间数据库中加载shapefile和文件地理数据库。
lele3p 2014年

Answers:


19

尝试添加适当的hostport参数。
顺便说一句,当我导入一个大的GDB文件时,我还要添加以下标志:

-overwrite (擦除您可能已经插入的任何混乱)和

-progress (为每添加10,000或10%的记录显示一个点或数字):

--config PG_USE_COPY YES (大大提高了速度)

因此,命令(应该是单行的,但为了清晰起见,在此格式化)

ogr2ogr 
    -f "PostgreSQL" 
    PG:"host=localhost port=5432 dbname=SampleNY user=postgres" 
    NYPluto/Pluto.gdb 
    -overwrite -progress --config PG_USE_COPY YES

如果需要,请使用URL代替“ localhost”。


6

如果gdb中有多个功能,并且您想指定Postgres模式和表名,请遵循以下步骤:

#First get the featurenames from the gdb:
ogrinfo geodbname.gdb

#then import a feature into a table:
ogr2ogr -f "PostgreSQL" PG:"host=hostname port=5432 dbname=dbname user=postgres"
geodbname.gdb -nlt PROMOTE_TO_MULTI -nln schemaname.tablename featurename -overwrite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.