0

有人可以帮我写一个查询来查找所有最接近经纬度的多边形。

所以生病提供纬度/经度,我想找到所有最近的多边形。

这是我到目前为止所拥有的:

SELECT name
FROM questions_radius
WHERE mdsys.sdo_within_distance(
the_geom, 
mdsys.sdo_geometry(2001, 8307, mdsys.sdo_point_type( 
-120, 43, null), null, null), 'distance=500 unit=FOOT')= 'TRUE' 

但这给了我一个错误:模式“mdsys”不存在。我正在使用 cartoDB。有人知道如何执行此查询吗?

4

1 回答 1

0

我自己想出来的=)

这是我使用的:

SELECT * FROM questions_radius 
WHERE ST_DWithin(the_geom::geography,
ST_SetSRID(ST_MakePoint([user_latitude], [user_longitude]), 4326)::geography, [distance_in_meters])
ORDER BY the_geom <-> ST_SetSRID(ST_MakePoint([user_latitude],[user_longitude]),4326) ASC
LIMIT 100

这可以查询最接近用户位置的点和多边形。只需提供以米为单位的纬度、经度和距离即可执行查询并完成。它相当快。希望这可以帮助任何想要执行一些很酷的地理空间查询的人。=)

于 2015-09-23T22:54:26.833 回答