Postgresql 点集的最近邻

Postgresql 点集的最近邻,postgresql,postgis,spatial,Postgresql,Postgis,Spatial,Hi使用postgres和postgis。我有两组点数据(Geom),一组是节点图,表示道路,另一组表示街道交叉口。对于我的交叉点数据集,我希望找到距离所有交叉点最近的单个节点。然而,我在使用最近邻技术时遇到了麻烦,因为它们似乎只对1个点起作用,而不是对一组点起作用,例如 SELECT streets.gid, streets.name FROM nyc_streets streets ORDER BY streets.geom <-> (SELECT geom

Hi使用postgres和postgis。我有两组点数据(Geom),一组是节点图,表示道路,另一组表示街道交叉口。对于我的交叉点数据集,我希望找到距离所有交叉点最近的单个节点。然而,我在使用最近邻技术时遇到了麻烦,因为它们似乎只对1个点起作用,而不是对一组点起作用,例如

SELECT
  streets.gid,
  streets.name
FROM
  nyc_streets streets
ORDER BY
  streets.geom <->
  (SELECT geom FROM nyc_subway_stations WHERE name = 'Broad St')
LIMIT 10;
使用这些特定的点,从另一个集合中找到与这些点最近的节点

select id, st_transform(the_geom, 4326)
from sydney_nodes

输出将是节点表中所有最接近交叉点的GEOM列

您还可以添加一些示例数据(作为insert语句)以获得预期结果吗?您可以尝试一下吗<代码>选择streets.gid、streets.name、streets.geom、min(ST_Distance(streets.geom,stations.geom))作为距离纽约大学街道、纽约大学地铁站和车站的距离。名称='Broad ST'GROUP BY streets.gid、streets.name、streets.geom这会让您了解如何使用多个点。选择streets.gid,streets.name FROM nyc_streets streets,nyc_streets streets,streets_loc,streets_loc,geom,25--距离(KM))限制为10;要为每个交叉点指定最近的节点,还是所有对中最接近的一对节点/交叉点?
select tags -> 'supervised' as supervised_cross, st_transform(way,4326) as cross_geom
from sydney_osm_point
where highway = 'crossing')