使用Hive列出半径内的所有点

时间:2016-11-03 21:38:57

标签: hive gis esri

我有一张表格如下:

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

2 个答案:

答案 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;