1

BOX3DPostGIS機能の動作に不安があります。正方形-158.72136588906366.09275164148659、154.608712235937 52.56807548751039(度)で場所を見つけようとしました。しかし、このwhereステートメント

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

2つの可能な正方形のうち最大の場所を返します。

角度の順序を変更したり、「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)

同じ結果になります。

角度のポイントの特定の順序に対してどのようにそれを行うことができますか?

4

1 に答える 1

1

Postgis は次のようにコーディアンを必要とします:

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)

それでも間違った結果が得られる場合は、クエリを 180 / -179.9999999 度で分割してみてください

于 2012-05-29T11:03:49.933 に答える