Vi Konversi Data Shp Ke Dalam Postgis Untuk Digunakan Dalam Aplikasi Sampledemo Webgis
description
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/1.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/2.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/3.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/4.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/5.jpg)
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](https://reader035.fdokumen.com/reader035/viewer/2022073103/55cf9ce4550346d033ab6ff6/html5/thumbnails/6.jpg)
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