postgis使用wgs84获得半径范围内的几何

时间:2014-10-16 00:19:11

标签: gis postgis wgs84

select *
from zones z
where st_intersects(z.geom, st_Buffer(ST_SetSRID(ST_Point(     2.336031, 48.863172), 3857),1));

看起来像' 1'在st_buffer中被解释为度,我需要在给定点的n米内找到几何。

我确实找到了对新函数(st_Buffer_Meters)的引用,但似乎并没有做任何不同的事情。

2 个答案:

答案 0 :(得分:2)

最终工作的实际查询是:

 select nom
 from zones s
 where ST_DWITHIN(Geography(ST_Transform(s.geom,4326)), ST_Point($1, $2) ,$3);`

其中1美元是经度,2美元是纬度,3美元是距离米。

此外,我将导入的数据从SRID 3857更改为SRID 4326

这是gis.stackexchange问​​题:https://gis.stackexchange.com/questions/118472/postgis-get-geometries-within-a-radius-of-n-meters-using-wgs84/118476#118476

这是'链接https://gis.stackexchange.com/questions/77688/postgis-get-the-points-that-are-x-meters-near-another-point-in-meters

之前的问题

答案 1 :(得分:0)

首先,我简化了您的查询以使用距离函数,这将使您的查询执行与使用较少的单词执行相同的操作。 ST_Distance_Sphere将以米为单位返回两个几何之间的最小距离。但是我在使用您的SRID时遇到了一些困难,因此我使用ST_Transform将SRID转换为4326

select *
from zones z
where st_distance_sphere(z.geom, 
     ST_TRANSFORM(ST_SetSRID(ST_Point( 2.336031, 48.863172), 3857), 4326  
)< 1000;