0

我正在尝试使用 postgis 来计算点之间的距离。我在表格中有(从到坐标)作为纬度和经度。我研究了一些代码,它看起来像这样:

SELECT ST_Distance_Sphere(
(ST_GeomFromText('POINT(' || distance.sfg_long || ' ' ||  distance.sfg_lat || ')',4326)), 
ST_GeomFromText('POINT(' || distance.plg_long || ' ' || distance.plg_lat || ')',4326))
FROM distance;

我收到这条消息:

ERROR:  parse error - invalid geometry
HINT:  "POINT(SF" <-- parse error at position 8 within geometry
SQL state: XX000

我想做的就是拉开距离,看起来其他人使用了类似的方法,并且对他们有用。

任何线索是怎么回事?

4

1 回答 1

0

我怀疑您的查询中有错字,或者您的经度列中的值无效。根据错误消息,sfg_long 中的值之一是否是以“SF”开头的文本?

分享您的表格设计和一些示例记录将有助于我们为您提供帮助。我将假设您的列是文本。

我会尝试以下类似的方法。ST_POINT语法更清晰

SELECT ST_Distancesphere(
   st_setsrid(st_point(distance.sfg_long::numeric,distance.sfg_lat::numeric),4326),
   st_setsrid(st_point(distance.plg_long::numeric,distance.plg_lat::numeric),4326)
) FROM distance
    -- st_distance_sphere is deprecated since 2.2.0
于 2018-07-20T07:35:44.600 回答