PostGISでクリックした座標の近くのアイテムを取得する方法

クリックした座標を中心に円ポリゴンを作成し、その円と交差している座標のアイテムを取得すればよい。

'クリックした座標を中心とした円
Dim strClickRectPolygon As String = String.Format("ST_SetSrid(Geometry(ST_Buffer(Geography(ST_MakePoint({0}, {1})), {2})), 4326)",
                                            decLon, decLat, decRange)
'クリックした座標
Dim strClickPoint As String = String.Format("ST_GeomFromText('POINT({0} {1})', 4326)",
                                            decLon, decLat)

Dim objSql As New StringBuilder()
objSql.Append("SELECT point_table.item_info")
objSql.Append("  FROM point_table")
objSql.Append(" WHERE ST_Intersects(point_table.geom, " & strClickRectPolygon & ")")      'クリックした座標を中心とした円と交差する線を抽出
objSql.Append(" ORDER BY ST_Distance(point_table.geom, " & strClickPoint & ", false)")    'クリックした座標に近い順に取得

クリックした座標を中心に円ポリゴンを作成する方法は以下を参考にした。

メートル指定の半径で円を作る方法
http://tnaka78.blogspot.com/2014/03/postgis.html
(例)北緯40度、東経140度から半径100kmの円を作る
select st_setsrid(geometry(st_buffer(geography(st_makepoint(140, 40)), 100000)), 4326)