在postGIS中选择特定半径内的查询

时间:2013-12-05 05:10:08

标签: postgresql postgis

我是这个postGIS的新手。我的要求是检索具有特定radius的数据。我的数据库我有the_geom(POINT)。现在我有一个查询,它将在给定点的2度内检索数据。

我的查询是:

select level4,level3
        from xxxxxxx
        where st_distance(the_geom,'SRID=4326;POINT(79.932018 12.513343)') < 2;

但是我需要检索特定公里或米内的点数。帮我解决一下。谢谢提前..

我是否必须拥有“地理”一栏。我想现在我有几何列?

1 个答案:

答案 0 :(得分:1)

您需要使用地理数据类型。然后,您可以使用ST_DWithin函数:

boolean ST_DWithin(geography gg1, 
                   geography gg2, 
                   double precision distance_meters);

您可以使用此查询:

select level4,level3
    from xxxxxxx
    where st_dWithin(the_geom,'SRID=4326;POINT(79.932018 12.513343)', 2000);

另见this page in the postGIS manual