postgresql 基于PostGIS的几何重叠识别

bjg7j2ky  于 2023-03-08  发布在  PostgreSQL
关注(0)|答案(1)|浏览(217)

我似乎在使用postGIS的基本功能时遇到了问题:

  • 我有一个表,其中包含市政当局的面(存储在文本字段中
  • 我正在围绕坐标(纬度/经度)绘制一个具有特定半径的圆

现在我想检查哪些市政当局是“接触”或在这个圈子内(见附图)
我尝试了各种各样的事情,但都没有成功。已经尝试检查,某个城市是否被圆接触失败...我认为它应该是这样的:

SELECT 
    points.common_name, 
    municipalities.id, 
    municipalities.name
FROM points, municipalities
WHERE 
ST_OVERLAPS(ST_Buffer(ST_MakePoint(points.latitude,points.longitude),1000),
            (ST_GeomFromText(municipalities.geoPolygon))) 
            = TRUE

然而,这并没有给出任何结果。
有人能给我指一下路吗?
问候你,克里勒

k5ifujac

k5ifujac1#

好的,很好,JGHs解决方案是正确的!代码现在看起来和工作起来都很有魅力!非常感谢!

SELECT 
    points.common_name, 
    municipalities.id, 
    municipalities.name
FROM points, municipalities
WHERE 
ST_DWithin(ST_MakePoint(points.longitude,points.latitude)::geography,
            ST_GeomFromText(municipalities.geoPolygon)::geography, 10000) AND points.id = something

相关问题