UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【PostgreSQL】緯度経度を検索

前回GISオブジェクトのデータ(緯度経度)を検索条件に検索することを行った

uga-box.hatenablog.com

今度は他の検索条件で緯度経度を取得することを考えた

当初DTOPoint型のプロパティを用意すればいい感じにやってくれると思ったがうまくいかなかった

   private Point latLng;

引き続き調査したいが、一旦別の手を考えた

緯度経度を格納したGEOMETRY(POINT, 4326)型のままつかうのではなく、sql上で緯度と軽度を分けて取得する

つまり、DTOのプロパティとして以下のような定義をする

   private BigDecimal lat;
   private BigDecimal lng;

そして、sqlではST_XST_Y関数を使ってGISオブジェクトを緯度経度に変換する

SELECT
    ST_X(L.LAT_LNG)  as LAT,
    ST_X(L.LAT_LNG)  as LNG

他にもたくさんの関数があるので必要になったら見に戻りたい http://postgis.net/docs/manual-3.0/reference.html#Geometry_Outputs

一旦、これで緯度経度を検索することができた

他参考

www.jurigis.me