我有一张表格如下:
time=20ms
该表是数百万行
我正在尝试获取将显示每个id_center的输出,其中id_points在5英里范围内,以及距离的距离,按降序排序。每行都是完全填充的,因此每个id_center在不同的行中都有可能的id_point。这是我到目前为止所尝试的内容,而我只是得到了无效结果:
id_center|latitude_of_center|longitude_of_center|id_point|latitude_of_point|longitude_of_point
答案 0 :(得分:0)
对于ST_LineString,首先需要经度,然后是纬度 - (X,Y)顺序。 (正如在GIS-SE上讨论的那样https://gis.stackexchange.com/questions/178950/hive-gis-st-geodesiclengthwgs84-not-returning-expected-distance)
答案 1 :(得分:0)
在完成类似任务时,我在ST_Point
内部使用了ST_LineString
。在docs中选中此选项。
就您而言:
SELECT * FROM mytable
WHERE ST_GeodesicLengthWGS84(ST_SetSRID(ST_LineString(array(ST_Point(longitude_of_center, latitude_of_center), ST_Point(longitude_of_point, latitude_of_point))), 4326)) <= 8046.72;