2017-03-15 45 views
1

我在我的徑向地理空間搜索中遇到了一個錯誤,如果用戶定義了一個圓形,其半徑擴展到任一極點,我遇到PostGIS錯誤:「 BOOM!無法生成由ST_Intersects調用引發的外部點「。我知道爲什麼會發生這種情況,但是有沒有辦法讓我修剪要查詢的緩衝地理/幾何圖形,以便它不會導致ST_Intersects遇到任何外部點?PostgreSQL:如何解決ST_Intersects中的「無法生成外點」錯誤

我的問題可以用下面的查詢複製:

SELECT ST_intersects(
    ST_BUFFER(
     ST_geomFromGeoJSON('{"type":"Point","coordinates":[-110.390625,42.293564192170095]}')::geography, 
     17712927.122199997 
    ), 
    ST_geomFromGeoJSON('{"type":"Point","coordinates":[-28.828124999999996,84.7060489350415]}')::geography 
); 

回答

1

再次尋找的文件結束後,我注意到,他們建議不要使用ST_Buffer徑向搜索。相反,使用ST_DWithin(地理,地理,儀表)將避免此問題。

下面的查詢將滿足我的問題:

SELECT ST_DWithin(
    ST_geomFromGeoJSON('{"type":"Point","coordinates":[-110.390625,42.293564192170095]}')::geography, 
    ST_geomFromGeoJSON('{"type":"Point","coordinates":[-28.828124999999996,84.7060489350415]}')::geography, 
    17712927.122199997 
); 
相關問題