在postgis上使用shp2pgsql导入shapefile时出错(无法打开shapefile)?

时间:2014-06-19 04:16:12

标签: postgresql postgis

我使用postgresql 9.1,postgis 2.0.1。为了将shapefile导入我的数据库,我使用shp2pgsql。我已经尝试了很多方法来导入这些shapefile(shp2pgsql -I roads.shp public.roads | psql -d map),但结果总是如此:

无法打开roads.shp或roads.SHP。
道路:无法打开dbf文件(.dbf)。

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:5)

“shapefile”实际上是多个文件(即,不仅仅是.shp文件)。使用任何GIS软件(包括shp2pgsql)时,请确保所有文件都在同一文件夹中。

共享公共前缀所需的最少文件是:

  • .shp - 几何数据
  • .dbf - 属性数据
  • .shx - 几何索引文件

其他文件可能包括:.prj,.sbn,.sbx,.fbn,.fbx,.ain,.aih,.ixs,.mxs,.atx,.shp.xml和.cpg。

答案 1 :(得分:2)

在遇到相同的问题并将文件移动到较小的路径后没有帮助,我尝试使用.shp文件的完整路径,而不是在同一文件夹中仅提供文件名。

幸运的是,这是我的问题,之后就可以了。

Lubuntu 12 - Postgres 9.3

答案 2 :(得分:1)

我遇到了同样的问题,我发现(.shp)和(.dbf)文件的路径包含空格。

e.g。目标形状文件的路径为home/my name/shapefiles/myshape.shp,其中包含终端无法识别的(空格)。

解决方案是添加反斜杠,后跟\之类的空格,而不是像这样的单个空格。

在我的示例中,在终端中键入类似的路径 home/my\ name/shapefiles/myshape.shp它的效果非常好。尝试一下。

类似于我们在大多数编程语言中处理字符串空间的方式。

希望它会有所帮助

答案 3 :(得分:0)

D:\ my_files \ shapefiles \-目录名应该简短,对我有用,在我的情况下,我也用'/'替换了'\'

答案 4 :(得分:0)

我遇到了同样的错误,但我的情况可能与您不同。我的shp文件位于一个文件夹中,文件名包含韩文,日文,中文等符号字符。将文件名更改为字母后,我的shp文件已成功导入。