2012-05-25 22 views
1

我对BOX3D PostGIS函数的工作有一些担忧。我试图找到广场-158.721365889063 66.09275164148659,154.608712235937 52.56807548751039(度)的地方。但是,这里的说法如何获取地图中的边框逐点的分数

some_place.point && SetSRID('BOX3D(-158.721365889063 66.09275164148659, 
    154.608712235937 52.56807548751039)'::box3d,4326) 

返回两个可能的正方形中最大的地方。

当我改变角度的顺序或使用'xmin ymin,xmax ymax'顺序时,我得到了相同的结果。

此外,我使用

 ST_Contains(SetSRID(ST_MakeBox2D( 
     ST_Point(143.930001298437,66.82980906973742), 
     ST_Point(-145.757498701563,51.37699768868392)), 4326), some_place.point) 

具有相同的结果。

我该怎么做一些特定的角度点?

回答

1

POSTGIS希望coordiants如下:

ST_MakeBox2D(<LL>, <UR>) 

LL意味着左下角,UR右上:

因此,对于您,这意味着:

some_place.point && SetSRID('BOX3D(154.608712235937 52.56807548751039, 
-158.721365889063 66.09275164148659)'::box3d,4326) 

ST_Contains(SetSRID(ST_MakeBox2D( 
    ST_Point(143.930001298437,51.37699768868392), 
    ST_Point(-145.757498701563,66.82980906973742)), 4326), some_place.point) 

如果你sti会得到错误的结果,尝试拆分查询在180/-179.9999999度

+0

我试图改变坐标的顺序,正如我在问题中所述,但它并没有帮助我。我用ST_Shift_Longitude函数得到了更好的解决方案 –

相关问题