createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql
所以现在我可以直接导入shapefile了吗?这是正确的命令吗?
ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;
我不确定如何构造数据库,是否不需要表?我最终将需要添加一堆shapefile,所以有命令可以这样做吗?
#1 楼
请尝试shp2pgsql
。基本语法如下:
shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h主机-d数据库-U用户
我总是从http://www.bostongis.com上找到此备忘单非常有用。如果向下滚动一下,您将找到有关如何加载数据的简单示例。
希望对您有所帮助。
#2 楼
啊!Haziq发表的内容将是正确的命令行方式Sam,
TABLE就是您想要为其命名的名称,它将是该名称。在查询中使用该表时,将在导入时生成该表。
如果您像我一样懒,我只是使用QGIS插件提供的出色SPIT(Shapefile到PostGIS导入工具)立即导入我所有的shapefile。假设您正在使用QuantumGIS,就像之前所说的那样使用OpenGeo。
评论
问题是我没有GUI。我正在远程使用Ubuntu Server。
– Sam007
2012年11月21日23:53
SPIT可以远程工作,从工作到我的主数据库我一直都在工作,您只需像登录psql一样填写连接信息。
–罗马
2012年11月21日23:55
我该如何执行
– Sam007
2012年11月21日23:59
好吧,我假设您正在获取本地的shp文件并将其放在远程服务器上。您将启动QGIS并在本地计算机上使用SPIT插件,连接远程服务器并上传。
–罗马
2012年11月22日,0:21
我所有的shp文件都在服务器上
– Sam007
2012年11月22日,0:39
评论
但是我没有桌子。我应该创建什么表和模式?
– Sam007
2012年11月21日23:30
如果看一下备忘单,(-d | -a | -c | -p)是表的标志。如果您未指定任何内容,则默认情况下它将选择-c(创建一个新表并填充它)。至于SRID,我不知道-这取决于您数据的投影。如果您有shapefile随附的.proj文件,则可以在prj2epsg.org/search中检查其投影。希望能帮助到你..
–user8723
2012年11月21日23:37
感谢您的回复@Haziq。我只对-c的位置感到困惑。我尝试了shp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranh但我收到错误dpaste.com/834563
– Sam007
2012年11月21日23:52
我认为-c应该在-s 4326之后,在/var/www/geo/shapefile/PimaPine.shp之前。.语法是shp2pgsql [OPTIONS] shapefile [schema。] table。更改-c的位置是否仍然会产生错误?
–user8723
2012年11月21日23:59
是的尝试创建扩展消息。要将文件导入到的数据库中。
– Stophface
17年9月11日在8:38