ST_Extentからバウンディングボックスの角を取得する方法は?


16

ST_Extentから取得したバウンディングボックスの角の緯度/経度を取得する方法はありますか?

select ST_Extent(geom) from tableName;

回答:


25

ST_Extentは、xmin、ymin、xmax、ymax(左下、右上の座標)で構成されるボックスを返します。

osm=# select st_extent(way) from planet_osm_point;
                            st_extent                                
-------------------------------------------------------------------------
 BOX(2259828.73261444 5412478.55751597,3301031.7673783 6147766.43413396)

左下に対応するポイントを取得するには、左下のX座標(st_xmin)と左下のY座標(st_ymin)で構成されるポイントを作成します。例:

osm=# select st_astext(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way)))) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 POINT(2259828.73261444 5412478.55751597)

st_extentはバウンディングボックスを返すため、ジオメトリからSRIDが削除されるため、新しく作成したポイントに追加する必要があることに注意してください(OSMデータのSRIDと一致させるために900913を使用しています)。

osm=# select st_asewkt(st_setsrid(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way))), 900913)) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 SRID=900913;POINT(2259828.73261444 5412478.55751597)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.