aus*_*809 3 postgresql postgis coordinate-systems
我正在使用带有gps数据的postgis,并试图找出一个带有GPS坐标和半径(以米为单位)的圆圈是否包含另一个圆圈.
如果我不使用GPS坐标,但只是在图表上指向,我就能做到这一点,但如果我用lat和lon点代替,这就不行了:
-- A circle within a circle
SELECT ST_Contains(bigc,smallc) As bigcontainssmall
FROM (SELECT ST_Buffer(ST_MakePoint(21, 38)::geography, 40) As smallc,
ST_Buffer(ST_MakePoint(21, 39)::geography, 400) AS bigc) foo;
Run Code Online (Sandbox Code Playgroud)
思考?
我的方法是:
ST_SetSRID(your_geom, 4326)这样做)::geography这样做)以启用以米为单位设置缓冲区辐射线,::geometry这样做)以使st_contains功能起作用查询:
SELECT ST_Contains(bigc::geometry,smallc::geometry) as bigcontainssmall
from (select
st_buffer(ST_SetSRID(ST_MakePoint(-71.10434, 42.31506),4326)::geography,40) as smallc,
st_buffer(ST_SetSRID(ST_MakePoint(-71.10434, 42.31507),4326)::geography,400) as bigc) foo
Run Code Online (Sandbox Code Playgroud)