sql >> データベース >  >> RDS >> PostgreSQL

バニラPostgresクエリでPostGISのバウンディングボックスを使用する

    bbox座標を個別の値として取得する場合は、ST_XMaxを確認してください。 、ST_YMaxST_XMinST_YMin 。クエリを埋め込む次のCTEから、アイデアが得られるはずです。

    WITH j (geom) AS (
     SELECT 
      ST_Extent(ST_Envelope(
       ST_Rotate(ST_Buffer(
        ST_GeomFromText('POINT(-87.6297982 41.8781136)',4326)::GEOGRAPHY,160934)::GEOMETRY,0)))
    )
    SELECT
        ST_XMax(geom),ST_YMax(geom),
        ST_XMin(geom),ST_YMin(geom)
    FROM j
    
    
          st_xmax      |     st_ymax     |      st_xmin      |     st_ymin      
    -------------------+-----------------+-------------------+------------------
     -85.6903925527536 | 43.327349928921 | -89.5681600538661 | 40.4285062983098
    

    サイドノート :ジオメトリ値を数値として保存するのは簡単に見えるかもしれませんが、特にポリゴンを扱う場合は、これ以上良い選択とは言えません。したがって、これらの値をgeometryとして保存することをお勧めします。 またはgeography 、一見複雑に見えるかもしれませんが、長期的には間違いなく報われます。

    この回答は、ポリゴンを含む距離/封じ込めクエリに光を当てる可能性があります:Getting all Buildings in range of 5 miles from specified coordinates




    1. rownum=3の給与からrownumを選択します。

    2. mysqlコネクタc++で自動再接続オプションを設定する方法

    3. MySQLルートパスワードを削除する方法

    4. CONNECT BYを使用して、階層クエリの各レベルでカウント/合計を取得する