Postgis查询更新线串

时间:2017-04-17 12:12:25

标签: postgis

执行此查询时

我收到错误

UPDATE treedetailsentered
 set geom_line=st_geomfromtext('LineString(('||longitude||' '||latitude||','||lon2||' '||lat2||'))', 4326);

错误

ERROR:  parse error - invalid geometry
HINT:  "LineString((7" <-- parse error at position 13 within geometry
********** Error **********

这是我在表格中为线串

创建列的方式
ALTER TABLE public.treedetailsentered
  ADD COLUMN geom_line geometry(LineString, 4326)

2 个答案:

答案 0 :(得分:0)

如果不知道longitudelatitude有哪种类型,很难说出确切的问题,但我的猜测是你没有形成正确的字符串。< / p>

我的建议是通过首先通过简单的查询创建正确的文本来调试这个:

select 'LineString(('||longitude||' '||latitude||','||lon2||' '||lat2||'))'

根据您的类型,您可能需要进行一些转换,例如:

select 'LineString(('||longitude::text||' '||latitude::text||','||lon2::text||' '||lat2::text||'))'

如果您已有文字,请确保数字格式正确。例如,浮点数应该有点小数点分隔符。

答案 1 :(得分:0)

我添加了一个额外的括号,我删除它对我有用。

UPDATE treedetailsentered set geom_line = ST_GeomFromText(&#39; LINESTRING(&#39; ||经度||&#39;&#39; ||纬度||&#39;,&#39; || lon2 ||&#39;&#39; || lat2 ||&#39;)&#39;,4326);