我使用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)。
我该如何解决这个问题?
答案 0 :(得分:5)
“shapefile”实际上是多个文件(即,不仅仅是.shp文件)。使用任何GIS软件(包括shp2pgsql)时,请确保所有文件都在同一文件夹中。
共享公共前缀所需的最少文件是:
其他文件可能包括:.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文件已成功导入。