PostGISを使う
http://d.hatena.ne.jp/kopug/20091011/1255240821
上記のエントリでPostGISのインストールについて書いたが、今度は実際に使ってみる
やりたい事としては以下のとおり
- 携帯のGPSから緯度、経度を取得し、近隣(半径200m以内)の店舗を検索する
- 近い順にソートをして一覧を出す
1. DBの作成
$ createdb -U postgres -T template_postgis geomanse
2. テーブルの作成 (※1)
$ psql -U postgres geomanse CREATE TABLE SAMPLE (id serial); SELECT AddGeometryColumn('sample', 'point', 4326, 'POINT', 2);
3. データを突っ込む
東京都港区芝公園4丁目2−8の緯度、経度を突っ込む場合(WGS84) GeomFromText('POINT(35.658671 139.7454)', 4326)
INSERT INTO SAMPLE (point) VALUES (GeomFromText('POINT(35.658671 139.7454)', 4326));
4. 任意の緯度、経度からの距離を求める
SELECT ST_Distance(point, GeomFromText('POINT(35.681382 139.766084)', 4326)) FROM SAMPLE;
ただこの単位だと度になっていると思われるので、メートルにする場合はまた次回で。