我正在尝试运行以下PostGIS查询:
select ST_distance_spheroid(
ST_GeomFromText('POINT(
(select AsText(location) from test where name="EGMC")
)', 4326),
ST_GeomFromText('POINT(
(select AsText(location) from test where name="EGDY")
)', 4326),
'SPHEROID["WGS_1984",6378137,298.257223563]'
);
但不断收到错误:
ERROR: parse error - invalid geometry
HINT: "POINT(
(s" <-- parse error at position 9 within geometry
我很高兴我知道错误意味着什么,我只是不知道如何实现我想做的事情。我不想手动指定位置,它存储在数据库中!我知道这个地方的名字,所以我希望通过查找来获得它的位置。我该怎么做?此外,转换为字符串转换回来似乎有点不必要,我还能做什么?
如果我能做到这一点而不必指定那些很棒的变量。
感谢。
答案 0 :(得分:0)
您正在混合使用SQL和WKT which are not the same。此外,您不需要重新创建已存在的几何。而是查询现有的几何图形:
select ST_distance_spheroid(g1.location, g2.location, 'SPHEROID["WGS_1984",6378137,298.257223563]')
from test g1, test g2
where g1.name = "EGMC" and g2.name = "EGDY";