我正在使用ogr2ogr将GPX文件上传到PostGIS。
当我在命令行(Ubuntu 14.04)上执行此操作时,它可以正常工作。
ogr2ogr -append -f PostgreSQL PG:"host=... dbname=... user=... password=..." 2016-04-26_15-32-01.xml
当我在PHP(5.5.9)上执行此操作时,
exec("ogr2ogr -append -f PostgreSQL PG:\"host=".HOST." dbname=".DATABASE." user=".USER." password=".PASSWORD."\" /var/www/html/plantas/gps/2016-04-26_15-32-01.xml 2>&1",$output,$retval);
它出现以下错误:
ERROR 1: INSERT command for new feature failed.
ERROR: Geometry SRID (0) does not match column SRID (4326)
Command: INSERT INTO "waypoints" ("wkb_geometry" , "ele", "time", "name", "cmt", "desc", "sym", "type", "gpxx_waypointextension", "wptx1_waypointextension", "ctx_creationtimeextension") VALUES ('010100000000008C76C2DF4EC00100C0A13A450E40'::GEOMETRY, 594, '2015/11/16 17:22:09+00', 'ROP_2904', '08-NOV-15 9:56:51
PONTO 60', '08-NOV-15 9:56:51
PONTO 60', 'Flag, Blue', 'user', ' SymbolAndName ', ' SymbolAndName ', ' 2015-11-16T17:22:09Z ') RETURNING "ogc_fid"
ERROR 1: Terminating translation prematurely after failed
translation of layer waypoints (use -skipfailures to skip errors)
我在这里缺少什么?
修改
我尝试了Mike T的建议:
$linha = "ogr2ogr -append -f PostgreSQL PG:\"host=".HOST." dbname=".DATABASE." user=".USER." password=".PASSWORD."\" -s_srs EPSG:4326 /var/www/html/plantas/gps/2016-04-26_15-32-01.xml 2>&1";
// or $linha = "ogr2ogr -s_srs EPSG:4326 -append -f PostgreSQL PG:\"host=".HOST." dbname=".DATABASE." user=".USER." password=".PASSWORD."\" /var/www/html/plantas/gps/2016-04-26_15-32-01.xml 2>&1";
exec($linha,$output,$retval);
无济于事:
ERROR 1: INSERT command for new feature failed.
ERROR: Geometry SRID (0) does not match column SRID (4326)
真正奇怪的是,终端上的命令完全相同。所以我认为PHP可能有一些问题,可能是缺少库或权限?
编辑2
现在我看到有一些用户需要运行的安装
psql -d yourdatabase -f postgis.sql
在我的电脑中我只做了
create extension postgis;
create extension postgis_topology;
要知道这是不是问题。
编辑3 - 已解决!
我又开始了这一切:
create extension postgis;
create extension postgis_topology;
ogr2ogr
创建了其他表格(如waypoints
); 答案 0 :(得分:1)
您的源图层似乎没有空间参照系(SRID = 0)。
使用ogr2ogr,您可以尝试-s_srs EPSG:4326
覆盖源SRS。
答案 1 :(得分:0)
我又开始了这一切:
create extension postgis;
create extension postgis_topology;
ogr2ogr
创建了其他表格(如waypoints
);