0

次の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

エラーの意味がわかってうれしいです。やりたいことを達成する方法がわかりません。場所を手動で指定したくありません。データベースに保存されています。地名は知っているので、調べて場所を知りたいです。これをどのように行う必要がありますか?また、文字列に変換して元に戻すのは少し不必要に思えますが、他に何ができますか?

変数を指定せずにこれを行うことができれば、それは素晴らしいことです。

ありがとう。

4

1 に答える 1

0

同じではないSQL と WKT を混在させています。さらに、既存のジオメトリを再作成する必要はありません。代わりに既存のジオメトリをクエリします。

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";
于 2013-02-16T22:55:26.513 に答える