使用shp2pgsql转换shapefile

Joh*_*ohn 4 postgresql postgis

我知道shp2pgsqlpostgresql目录中的位置,但我不确定之后要使用的命令.我已经彻底阅读了本手册,并且我知道该shp2pgsql命令的所有参数和选项.我收到错误:

-bash: shp2pgsql: command not found
Run Code Online (Sandbox Code Playgroud)

这可能是权限问题吗?

小智 10

正确的命令是«shp2pgsql»,你有一个错字.

用法示例:

# shp2pgsql -c -D -s 4269 -I shaperoads.shp myschema.roadstable > roads.sql
# psql -d roadsdb -f roads.sql
Run Code Online (Sandbox Code Playgroud)
  • -c创建表
  • -I在几何上创建索引
  • -D使用转储格式
  • -s指定投影srid

首先生成一个sql文件,然后将其加载到数据库中.

  • 对于那些来到这个线程用于shp2pgsql的人来说,你也可以将`shp2pgsql`的输出直接传递给`psql`,而不是保存中间的SQL文件.上面的例子看起来像:`shp2pgsql -c -D -s 4269 -I shaperoads.shp myschema.roadstable | psql -d roadsdb`有关更多信息,请查看[Boston GIS shp2pgsql备忘单](http://www.bostongis.com/pgsql2shp_shp2pgsql_quickguide_20.bqg). (3认同)

Joh*_*ohn 1

解决方案是导出程序的路径并将其放入 $PATH 变量中。另一种选择是将命令移至 PATH 中已包含的目录,例如 /usr/bin。

示例

导出 PATH=/Library/Postgresql/9.0/bin/:$PATH


  1. echo $PATH 查找已经存在的目录

  2. 转到其中包含该程序的目录

  3. 例如 mv shp2pgsql /usr/bin