FC2ブログ

1日1tech

PostgreSQL で位置情報をスマートに扱う方法

PostgreSQL で位置情報を扱うのって、PostGIS とかいれるんだろうなぁと思っていたのですが、どうやらそうでもないらしい。一部引用。

データベース上の位置情報を効率的に検索する方法(PostgreSQL編)
http://neta.ywcafe.net/000597.html

まずは実験環境を用意する。PostgreSQL8.1.4をインストールし、 2次元座標データ型を持つテーブルを作成。こんな感じ。
create table geodata (id int4, geo point);
(中略)
ある矩形(長方形のこと)の範囲内にあるレコードを検索してみる。
select * from geodata where geo @ box(point(100,100),point(200,200));
ある円の範囲内にあるレコードを検索してみる。
select * from geodata where geo @ circle(point(300,300),40);
中心からの距離で結果をソートしてみる。
select * from geodata where geo @ circle(point(300,300),40) order by geo <-> point(300,300);


ええーっ、こんなにスマートなことができるのかよって感じです。
べたに緯度経度フィールドを用意してたよ... otz
スポンサーサイト



  1. 2006/09/08(金) 12:25:38|
  2. develop|
  3. トラックバック:0|
  4. コメント:0