根据其他图层的质量构建邻居查询

时间:2017-04-27 01:02:00

标签: postgresql postgis nearest-neighbor

我正在使用PostGIS和PostgreSQL。我有2层数据。

  • 带有多边形的图层,其上附有一些细节,即表格 polygons字段为idqualitygeom(几何形状)。
  • 另一个,有一层 要点:包含字段pointsid(几何形状)的表geom

对于每个点(标记为黄色的示例点),我想找到最近的点,它显示强烈的特征,但这是在一个范围内(也是黄色)。 为了获得这种质量,我必须查看被调查点周围多边形的细节(绿色)。

SELECT pt1.id, pt2.id, p.id, sum(p.quality) as quality_total
FROM polygons p, points pt1, points pt2
WHERE ST_DWithin(pt1.geom, pt2.geom, 100) --points maximum 100 units away from each other
  AND ST_DWithin(p.geom, pt2.geom, 10) --polygons maximum 10 units away from point pt2
  AND (pt1.id = 1 OR pt1.id = 2) --specific points
GROUP BY quality, pt1.id, pt2.id, p.id 

以上是我到目前为止的尝试。正如您所看到的,它仅针对特定点。我希望输出结果适用于所有点,例如:

  

pt1.idpt2.idsum(p.quality)

表示pt1.id是一个点,pt2.id是最接近pt1的点(表现出质量),sum(p.quality)是pt2中所有多边形质量的总和&# 39; s范围。我不知道如何继续构建查询。我将不胜感激任何帮助。我想这是一种聚类问题,但我在这里没有受过如此教育。

Image complementing the explanation of my problem

0 个答案:

没有答案