CentOSでpostGIS インストール編
今回長いのでわけます!
地理空間情報(位置情報)をデータベース上で簡単に扱えるようになるライブラリがあります
postGIS
これは、postgreSQL上で動作し、地理情報関連の計算(距離、二点の角度、)地理空間向けのインデックスを用いた高速な検索などを可能にします。
まぁ・・簡単に言っちゃうと、
データベースで簡単、高速、楽チン地理情報サービス
って感じです。
たとえば、データベース内にランドマークの緯度経度が入っているとして
桐生駅周辺 1km圏内に含まれるランドマークを検索したい!
大きな地図で見る
真面目に実装しようと思ったら、円領域の定義が難しかったり複雑な計算を求められたり・・。
相当な労力が必要なはずです!
しかし、postGISを使うと
SELECT * FROM my_table WHERE ST_Dwithin(ST_GeomFromText('POINT(36.411060, 139.333023)', 3395), my_table.the_geom, 0.010);
たったのこれだけです!
結果
---------------------------------------------------------------------------------------
id | lm_name | lm_point
1371 | 桐生警察署 駅前交番 | 0101000020430D0000C539EAE8B8344240F35A09DDA56A6140
1373 | 丸政マンション | 0101000020430D0000C3802557B1344240CB4C69FDAD6A6140
1378 | 桐生市保険福祉会館 | 0101000020430D00001DE38A8BA3344240CA32C4B1AE6A6140
1482 | エースホテル | 0101000020430D0000997FF44D9A344240F30181CEA46A6140
1483 | 丹羽ビル | 0101000020430D0000BEBD6BD097344240713D0AD7A36A6140
1484 | (有)きんぐ食品工業 | 0101000020430D00008AB0E1E995344240D575A8A6A46A6140
1485 | (株)花清 | 0101000020430D00007AE1CE85913442404EB51666A16A6140
1487 | 立花化粧品店 | 0101000020430D000079793A5794344240BDE5EAC7A66A6140
1488 | ASA桐生南部庭野新聞店 | 0101000020430D00005182FE428F344240E544BB0AA96A6140
1489 | ミクニビル | 0101000020430D00006B4606B98B3442409D64ABCBA96A6140
1490 | パークイン桐生 | 0101000020430D0000E563778192344240E4107173AA6A6140
1491 | 読売会館ビル | 0101000020430D00001BBCAFCA85344240F374AE28A56A6140
1492 | 佐藤(株) | 0101000020430D000058569A94823442405D363AE7A76A6140
1522 | 桐生駅 | 0101000020430D0000A25D85949F3442401BA034D4A86A6140
以下略
---------------------------------------------------------------------------------------
あとで詳しく説明しますが、簡単に説明しておくと
lm_pointは緯度経度情報です
postGISの部分は
SELECT * FROM my_table WHERE ST_Dwithin(ST_GeomFromText('POINT(36.411060, 139.333023)', 3395), my_table.the_geom, 0.010);
こんだけ!
今回はその便利なpostGISのインストール方法、使い方をまとめます。
あまりサーバーに詳しくないので、はてな?な部分が出てくるかもしれませんが指摘していただけると非常に助かります。
まず今回インストールした環境は
CentOS 5.2
postgreSQL 8.3.7
です!諸事情でアップデートしてないんですけどきっと他のバージョンでも動くはずなんで・・。
------------------------------------------------
1.インストール
手順を書くとgdgdになるっていう・゚・(つД`)・゚・
1.1 ソースのダウンロード
postGIS本体
http://postgis.refractions.net/
Downloads → SOURCE CODE → postgis-1.5.2.tar.gz (~3.6M)
postGISを動作させるためには二つのライブラリが必要です
・Proj4 幾何演算用ライブラリ
・GEOS 投影変換用ライブラリ
Proj4
http://trac.osgeo.org/proj/
Download → geos-3.2.2.tar.bz2(なるべく最新バージョンを入れたほうがいいです)
GEOS
http://trac.osgeo.org/geos/
Download → http://download.osgeo.org/proj/proj-4.7.0.tar.gz (こちらも)
1.2 Proj4のインストール
ダウンロードしたファイルを解凍します
$ tar -xvf proj-.tar.gz
の部分はインストールするバージョンと置き換えてください
ファイルを解凍してできたproj-.tarディレクトリ内でconfigureする
$ ./configrue
makeする
$ make
インストールする
$ make install
1.3 GEOSのインストール
ファイルを解凍
$ tar -xvf geos-.tar
の部分はインストールするバージョンと置き換えてください
ファイルを解凍してできたgeos-.tarディレクトリ内でconfigureする
$ ./configure
デフォルトでは/usr/local以下にインストールされます。
異なるディレクトリにインストールする時は
$ ./configure --prefix=[インストール先ディレクトリ]
とします。
makeする
$ make
インストールする
$ make install
1.4 PostGIS本体のインストール
configureの編集
PostgreSQL保存先にあるpg_confi,
GEOS保存先のgeos_confi,Proj保存先を指定します。
環境によって異なる可能性があるので注意!
findコマンドで探せばいいと思うよ!
$ find / -name geos_confi
$ ./configure --with-pgsql=/usr/local/pgsql/bin/pg_config --with-geos=/usr/local/bin/geos_config --with-proj=/usr/locall --with-proj-libdir=/usr/local/lib
makeする
$ make
インストールする
% make install
以上でインストールできたはずです!
-----------------------------------------------------------
地理空間情報(位置情報)をデータベース上で簡単に扱えるようになるライブラリがあります
postGIS
これは、postgreSQL上で動作し、地理情報関連の計算(距離、二点の角度、)地理空間向けのインデックスを用いた高速な検索などを可能にします。
まぁ・・簡単に言っちゃうと、
データベースで簡単、高速、楽チン地理情報サービス
って感じです。
たとえば、データベース内にランドマークの緯度経度が入っているとして
桐生駅周辺 1km圏内に含まれるランドマークを検索したい!
大きな地図で見る
真面目に実装しようと思ったら、円領域の定義が難しかったり複雑な計算を求められたり・・。
相当な労力が必要なはずです!
しかし、postGISを使うと
SELECT * FROM my_table WHERE ST_Dwithin(ST_GeomFromText('POINT(36.411060, 139.333023)', 3395), my_table.the_geom, 0.010);
たったのこれだけです!
結果
---------------------------------------------------------------------------------------
id | lm_name | lm_point
1371 | 桐生警察署 駅前交番 | 0101000020430D0000C539EAE8B8344240F35A09DDA56A6140
1373 | 丸政マンション | 0101000020430D0000C3802557B1344240CB4C69FDAD6A6140
1378 | 桐生市保険福祉会館 | 0101000020430D00001DE38A8BA3344240CA32C4B1AE6A6140
1482 | エースホテル | 0101000020430D0000997FF44D9A344240F30181CEA46A6140
1483 | 丹羽ビル | 0101000020430D0000BEBD6BD097344240713D0AD7A36A6140
1484 | (有)きんぐ食品工業 | 0101000020430D00008AB0E1E995344240D575A8A6A46A6140
1485 | (株)花清 | 0101000020430D00007AE1CE85913442404EB51666A16A6140
1487 | 立花化粧品店 | 0101000020430D000079793A5794344240BDE5EAC7A66A6140
1488 | ASA桐生南部庭野新聞店 | 0101000020430D00005182FE428F344240E544BB0AA96A6140
1489 | ミクニビル | 0101000020430D00006B4606B98B3442409D64ABCBA96A6140
1490 | パークイン桐生 | 0101000020430D0000E563778192344240E4107173AA6A6140
1491 | 読売会館ビル | 0101000020430D00001BBCAFCA85344240F374AE28A56A6140
1492 | 佐藤(株) | 0101000020430D000058569A94823442405D363AE7A76A6140
1522 | 桐生駅 | 0101000020430D0000A25D85949F3442401BA034D4A86A6140
以下略
---------------------------------------------------------------------------------------
あとで詳しく説明しますが、簡単に説明しておくと
lm_pointは緯度経度情報です
postGISの部分は
SELECT * FROM my_table WHERE ST_Dwithin(ST_GeomFromText('POINT(36.411060, 139.333023)', 3395), my_table.the_geom, 0.010);
こんだけ!
今回はその便利なpostGISのインストール方法、使い方をまとめます。
あまりサーバーに詳しくないので、はてな?な部分が出てくるかもしれませんが指摘していただけると非常に助かります。
まず今回インストールした環境は
CentOS 5.2
postgreSQL 8.3.7
です!諸事情でアップデートしてないんですけどきっと他のバージョンでも動くはずなんで・・。
------------------------------------------------
1.インストール
手順を書くとgdgdになるっていう・゚・(つД`)・゚・
1.1 ソースのダウンロード
postGIS本体
http://postgis.refractions.net/
Downloads → SOURCE CODE → postgis-1.5.2.tar.gz (~3.6M)
postGISを動作させるためには二つのライブラリが必要です
・Proj4 幾何演算用ライブラリ
・GEOS 投影変換用ライブラリ
Proj4
http://trac.osgeo.org/proj/
Download → geos-3.2.2.tar.bz2(なるべく最新バージョンを入れたほうがいいです)
GEOS
http://trac.osgeo.org/geos/
Download → http://download.osgeo.org/proj/proj-4.7.0.tar.gz (こちらも)
1.2 Proj4のインストール
ダウンロードしたファイルを解凍します
$ tar -xvf proj-
ファイルを解凍してできたproj-
$ ./configrue
makeする
$ make
インストールする
$ make install
1.3 GEOSのインストール
ファイルを解凍
$ tar -xvf geos-
ファイルを解凍してできたgeos-
$ ./configure
デフォルトでは/usr/local以下にインストールされます。
異なるディレクトリにインストールする時は
$ ./configure --prefix=[インストール先ディレクトリ]
とします。
makeする
$ make
インストールする
$ make install
1.4 PostGIS本体のインストール
configureの編集
PostgreSQL保存先にあるpg_confi,
GEOS保存先のgeos_confi,Proj保存先を指定します。
環境によって異なる可能性があるので注意!
findコマンドで探せばいいと思うよ!
$ find / -name geos_confi
$ ./configure --with-pgsql=/usr/local/pgsql/bin/pg_config --with-geos=/usr/local/bin/geos_config --with-proj=/usr/locall --with-proj-libdir=/usr/local/lib
makeする
$ make
インストールする
% make install
以上でインストールできたはずです!
-----------------------------------------------------------