UGA Boxxx

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

【PostgreSQL】GISデータの作成と緯度経度での検索

PostGISの利用準備ができたのでデータをいれたい

uga-box.hatenablog.com

データの作成

以下のようなcsvファイルを作り、COORDINATEテーブルに格納する

COORDINATE_ID LAT_LNG
5085f82b-680d-4d30-bf17-29fa7e5aeee3 SRID=4326;POINT(43.0230805 141.3223676)

GEOMETRY(POINT, 4326)型のカラムには文字列でSRID=4326;POINT(緯度 軽度)というフォーマットで用意するとCOPYコマンドでいれることができる

検索

先ほどのテーブルに対して緯度経度を使って緯度経度IDを検索したい

JavaではPoint型インスタンスをつくり、その後おまじない的にそのオブジェクトにsetSrid(4326)をする

Point coordinate = new Point(緯度, 軽度);
coordinate.setSrid(4326);

これをSQLの検索条件に使用する

select COORDINATE_ID
    from COORDINATE C
    where  C.LAT_LNG = #{coordinate}

これで検索ができるようになった