Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

6
WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS VI. KONVERSI DATA SHP KE DALAM POSTGIS UNTUK DIGUNAKAN DALAM APLIKASI SAMPLE/DEMO WEBGIS Pada pembahasan diatas kita telah mempunyai beberapa data shp yang digunakan dalam sample/demo WebGIS, antara lain : o image raster : layer bathymetry (bath_mapserver.tif) o polygon : layer land_fn (land_fn.shp); layer park (park.shp); layer drain_fn (drain_fn.shp); layer drainage (drainage.shp) o line : layer prov_bound (province.shp); layer fedlimit (fedlimit.shp); layer rail (rail.shp); layer road (road.shp); o point : layer popplace (popplace.shp); o grid : layer grid (grid.shp) Selanjutnya kita akan mengubah data shp diatas menjadi bentuk tabel didalam database PostgreSQL. LANGKAH I. MEMBUAT DATABASE SPATIAL 1. Jalankan PgAdmin, kemudian buat user baru www.hatma.info 1

description

A

Transcript of Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

Page 1: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

VI. KONVERSI DATA SHP KE DALAM POSTGIS UNTUK DIGUNAKAN DALAM

APLIKASI SAMPLE/DEMO WEBGIS

Pada pembahasan diatas kita telah mempunyai beberapa data shp yang digunakan dalam

sample/demo WebGIS, antara lain :

o image raster : layer bathymetry (bath_mapserver.tif)

o polygon : layer land_fn (land_fn.shp); layer park (park.shp); layer drain_fn

(drain_fn.shp); layer drainage (drainage.shp)

o line : layer prov_bound (province.shp); layer fedlimit (fedlimit.shp); layer rail (rail.shp);

layer road (road.shp);

o point : layer popplace (popplace.shp);

o grid : layer grid (grid.shp)

Selanjutnya kita akan mengubah data shp diatas menjadi bentuk tabel didalam database

PostgreSQL.

LANGKAH I. MEMBUAT DATABASE SPATIAL

1. Jalankan PgAdmin, kemudian buat user baru

www.hatma.info 1

Page 2: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

Kemudian masukkan data user baru

2. Buat database baru, dengan menggunakan template_postgis

www.hatma.info 2

Page 3: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

3. Masukkan detail database

4. Copy file-file shp yang ada digunakan pada aplikasi sample demo WebGIS diatas, dari

folder D:\ms4w\apps\demo\samples\data ke dalam direktori bin pada instalasi server

PostgreSQL (C:\Program Files\PostgreSQL\8.2\bin ).

5. Kemudian jalankan "psql" SQL terminal monitor, dan lakukan konversi dari semua file

shp diatas kedalam bentuk *.sql. Sehingga diperoleh sepuluh file sql.

o shp2pgsql road troad > road.sql

o shp2pgsql rail trail > rail.sql

o shp2pgsql province tprovince > province.sql

o shp2pgsql popplace tpopplace > popplace.sql

o shp2pgsql park tpark > park.sql

o shp2pgsql land_fn tland_fn > land_fn.sql

o shp2pgsql grid tgrid > grid.sql

o shp2pgsql fedlimit tfedlimit > fedlimit.sql

o shp2pgsql drainage tdrainage > drainage.sql

o shp2pgsql drain_fn tdrain_fn > drain_fn.sql

www.hatma.info 3

Page 4: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

6. Amati file sql, yang isinya akan membuat table dan isinya sesuai dengan file shp.

contoh isi file sql (road.sql) : BEGIN;

CREATE TABLE "troad" (gid serial PRIMARY KEY,

"fnode_" int8,

"tnode_" int8,

"lpoly_" int8,

"rpoly_" int8,

"length" float8,

"road_" int8,

"road_id" int8,

"f_code" int2,

"name_e" varchar(26),

"name_f" varchar(26));

SELECT AddGeometryColumn('','troad','the_geom','-1','MULTILINESTRING',2);

INSERT INTO "troad" ("fnode_","tnode_","lpoly_","rpoly_","length","road_","road_id","f_code","name_e","name_f",the_geom)

VALUES

('65','70','3','3','31779.260','1','1','74',NULL,NULL,'01050000000100000001020000000400000000000000164F414100000060EB773

341000000A0EC494141000000808A71334100000080DF2B414100000080CE3E334100000000C41F414100000000E0273341');

………………………….

7. load semua file sql tersebut kedalam database postgreSQL dengan cara mengeksekusi

perintah dengan format “psql -d [target_database] -f [file_sql] ” pada SQL terminal

monitor o psql -d dbspatialdemo -f road.sql

o psql -d dbspatialdemo -f rail.sql

o psql -d dbspatialdemo -f province.sql

o psql -d dbspatialdemo -f popplace.sql

o psql -d dbspatialdemo -f park.sql

o psql -d dbspatialdemo -f land_fn.sql

o psql -d dbspatialdemo -f grid.sql

o psql -d dbspatialdemo -f fedlimit.sql

o psql -d dbspatialdemo -f drainage.sql

o psql -d dbspatialdemo -f drain_fn.sql

Amati hasilnya.

• Kolom geometry bertipe POINT terdapat pada tabel : tpopplace

• Kolom geometry bertipe MULTILINESTRING terdapat pada tabel : troad ; trail ;

tgrid ; tfedlimit

www.hatma.info 4

Page 5: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

• Kolom geometry bertipe MULTIPOLYGON terdapat pada tabel : tprovince ;

tpark ; tland_fn ; tdrainage ; tdrain_fn

8. Buat index GIST pada masing-masing kolom yang bertipe geometry pada masing-masing

tabel. Kemudian lakukan vacuum analyze, untuk mengupdate statistik geometry (lakukan

vacuum secara rutin, terlebih ketika ada perubahan pada data spatial)

o CREATE INDEX troad_gist_index ON troad USING GIST ( the_geom GIST_GEOMETRY_OPS

); VACUUM ANALYZE troad (the_geom) ;

o CREATE INDEX trail_gist_index ON trail USING GIST ( the_geom GIST_GEOMETRY_OPS );

VACUUM ANALYZE trail (the_geom) ;

o CREATE INDEX tprovince_gist_index ON tprovince USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tprovince (the_geom) ;

o CREATE INDEX tpopplace_gist_index ON tpopplace USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tpopplace (the_geom) ;

o CREATE INDEX tpark_gist_index ON tpark USING GIST ( the_geom GIST_GEOMETRY_OPS

); VACUUM ANALYZE tpark (the_geom) ;

o CREATE INDEX tland_fn_gist_index ON tland_fn USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tland_fn (the_geom) ;

o CREATE INDEX tgrid_gist_index ON tgrid USING GIST ( the_geom GIST_GEOMETRY_OPS

); VACUUM ANALYZE tgrid (the_geom) ;

o CREATE INDEX tfedlimit_gist_index ON tfedlimit USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tfedlimit (the_geom) ;

o CREATE INDEX tdrainage_gist_index ON tdrainage USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tdrainage (the_geom) ;

o CREATE INDEX tdrain_fn_gist_index ON tdrain_fn USING GIST ( the_geom

GIST_GEOMETRY_OPS ); VACUUM ANALYZE tdrain_fn (the_geom) ;

9. Buat gid index pada masing-masing table. Karena untuk mempercepat query, maka

diperlukan suatu kolom yang unique pada suatu table geometry, dengan index yang telah

didefinisikan padanya :

o CREATE INDEX troad_gid ON troad ( gid );

o CREATE INDEX trail_gid ON trail ( gid );

o CREATE INDEX tprovince_gid ON tprovince ( gid );

o CREATE INDEX tpopplace_gid ON tpopplace ( gid );

o CREATE INDEX tpark_gid ON tpark ( gid );

o CREATE INDEX tland_fn_gid ON tland_fn ( gid );

www.hatma.info 5

Page 6: Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis

WebgGIS dengan MapServer – MapLab – Chameleon - PostGIS

o CREATE INDEX tgrid_gid ON tgrid ( gid );

o CREATE INDEX tfedlimit_gid ON tfedlimit ( gid );

o CREATE INDEX tdrainage_gid ON tdrainage ( gid );

o CREATE INDEX tdrain_fn_gid ON tdrain_fn ( gid );

10. Lihat pada pgAdmin, apakah sepuluh table dan isinya telah masuk dalam database. Jika

benar, maka anda telah berhasil memasukkan data shp ke dalam table di database.

www.hatma.info 6