【问题标题】:PostgreSQL query within PostGIS functionPostGIS 函数中的 PostgreSQL 查询
【发布时间】:2013-02-15 17:30:57
【问题描述】:

我正在尝试运行以下 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

我很高兴我知道错误意味着什么,我只是不知道如何去实现我想做的事情。我不想手动指定位置,它存储在数据库中!我知道这个地方的名字,所以我想通过查找来获得它的位置。我应该怎么做?另外,转回字符串好像有点没必要,还能怎么办?

如果我可以做到这一点而不必指定变量,那就太好了。

谢谢。

【问题讨论】:

    标签: postgis


    【解决方案1】:

    您正在混合使用 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";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-25
      • 2019-07-27
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      相关资源
      最近更新 更多