前回GISオブジェクトのデータ(緯度経度)を検索条件に検索することを行った
今度は他の検索条件で緯度経度を取得することを考えた
当初DTOにPoint型のプロパティを用意すればいい感じにやってくれると思ったがうまくいかなかった
private Point latLng;
引き続き調査したいが、一旦別の手を考えた
緯度経度を格納したGEOMETRY(POINT, 4326)型のままつかうのではなく、sql上で緯度と軽度を分けて取得する
つまり、DTOのプロパティとして以下のような定義をする
private BigDecimal lat; private BigDecimal lng;
そして、sqlではST_XとST_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
一旦、これで緯度経度を検索することができた