2018.12.06 Thursday
PostgreSQL 11 on Windows でPostGIS !
[PostgreSQL 11 on Windows でPostGIS !]
本エントリはRDBMS-GIS Advent Calendar 2018の六日目です。
PostGISは動作確認用にLinuxでいろいろ動作させてきましたが、最近Window関数の評価用にWindows環境を作成し、
そこでは簡単に設定できるため、メモとして本件を残しておきます。
1.Windows版PostgreSQL 11のインストール
EDBのダウンロードサイトからPostgreSQL Version 11.1 (Windows x86-64)をダウンロードします。
exe形式のインストーラになっているので、そのままインストールします。気にする部分はロケールはCというところでしょうか。
2.PostGISのインストール
実は1.のインストールの延長で追加機能をインストールできます。そこでPostGISを追加してください。現在はPostGIS 2.5がインストールされます。
3.PostGISの有効化
SQL SHELL(psql)で以下のコマンドを実行します。元ネタはここ。
七つのEXTENSIONがあります。必要なものだけ入れればいいのですが、また開発環境なので、全部入れちゃいました :)
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
4.お試し
元ネタのページにあるようにこんなDDL, DMLが打てるようになります。
-- Create table with spatial column
CREATE TABLE mytable (
id SERIAL PRIMARY KEY,
geom GEOMETRY(Point, 26910),
name VARCHAR(128)
);
-- Add a spatial index
CREATE INDEX mytable_gix
ON mytable
USING GIST (geom);
-- Add a point
INSERT INTO mytable (geom) VALUES (
ST_GeomFromText('POINT(0 0)', 26910)
);
-- Query for nearby points
SELECT id, name
FROM mytable
WHERE ST_DWithin(
geom,
ST_GeomFromText('POINT(0 0)', 26910),
1000
);
5.そのあと
こういうのをごにょごにょすると楽しそう。また書籍も(英語版なら)いくつか出てます!
PostGIS(地理情報システムを実現するための拡張モジュール)
PostGIS データの格納と表示(Let's Postgres)
6.ちなみにMySQLは
5.7以降本体に取り込まれていますので、どのようなパッケージでも、インストールすれば使えます。
明日は@sakaikさんにバトンが戻ります。
本エントリはRDBMS-GIS Advent Calendar 2018の六日目です。
PostGISは動作確認用にLinuxでいろいろ動作させてきましたが、最近Window関数の評価用にWindows環境を作成し、
そこでは簡単に設定できるため、メモとして本件を残しておきます。
1.Windows版PostgreSQL 11のインストール
EDBのダウンロードサイトからPostgreSQL Version 11.1 (Windows x86-64)をダウンロードします。
exe形式のインストーラになっているので、そのままインストールします。気にする部分はロケールはCというところでしょうか。
2.PostGISのインストール
実は1.のインストールの延長で追加機能をインストールできます。そこでPostGISを追加してください。現在はPostGIS 2.5がインストールされます。
3.PostGISの有効化
SQL SHELL(psql)で以下のコマンドを実行します。元ネタはここ。
七つのEXTENSIONがあります。必要なものだけ入れればいいのですが、また開発環境なので、全部入れちゃいました :)
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
4.お試し
元ネタのページにあるようにこんなDDL, DMLが打てるようになります。
-- Create table with spatial column
CREATE TABLE mytable (
id SERIAL PRIMARY KEY,
geom GEOMETRY(Point, 26910),
name VARCHAR(128)
);
-- Add a spatial index
CREATE INDEX mytable_gix
ON mytable
USING GIST (geom);
-- Add a point
INSERT INTO mytable (geom) VALUES (
ST_GeomFromText('POINT(0 0)', 26910)
);
-- Query for nearby points
SELECT id, name
FROM mytable
WHERE ST_DWithin(
geom,
ST_GeomFromText('POINT(0 0)', 26910),
1000
);
5.そのあと
こういうのをごにょごにょすると楽しそう。また書籍も(英語版なら)いくつか出てます!
PostGIS(地理情報システムを実現するための拡張モジュール)
PostGIS データの格納と表示(Let's Postgres)
6.ちなみにMySQLは
5.7以降本体に取り込まれていますので、どのようなパッケージでも、インストールすれば使えます。
明日は@sakaikさんにバトンが戻ります。
JUGEMテーマ:コンピュータ