Bayu Kurniawan R

Think about GIS, Linux and Oracle

You are currently browsing the archives for the day Friday, April 18th, 2008.

Compile PostgreSQL/PostGIS

PostgreSQL/PostGIS

PostGIS (http://postgis.refractions.net)

PostGIS merupakan plugin untuk database PostgreSQL yang berfungsi untuk menyimpan dan melakukan analisis data geospasial. Fungsi dan kegunaannya sama dengan SDE (Spatial Data Engine) ESRI dan Oracle Spasial.

Untuk menginstall database PostgreSQL/PostGIS terlebih dahulu kita harus mengcompile komponen pendukungnya yaitu : PROJ dan GEOS.

Proj

Proj4 (http://proj.maptools.org) – Cartographic Projections Library

Library untuk proyeksi peta, menyediakan lebih dari 100 macam proyeksi.

Geos

GEOS (http://geos.refractions.net) – Geometry Engine Open source

Library untuk topology data vektor.

Compile Proj

Buka console/terminal untuk memulai installasi

Pindah ke direktori dimana file aplikasi disimpan

Ekstract file PROJ dengan mengetikkan

tar -xvf proj-[versi aplikasi].tar.gz

Pindah ke dalam folder aplikasi proj dengan mengetikkan perintah

cd proj-[versi aplikasi]/

Compile aplikasi dengan mengetikkan perintah

./configure

make

make install

Compile Geos

Buka console/terminal untuk memulai installasi

Pindah ke direktori dimana file aplikasi disimpan

Ekstract file Geos dengan mengetikkan

tar -xvf geos-[versi aplikasi].tar.gz

Pindah ke dalam folder aplikasi Geos dengan mengetikkan perintah

cd geos-[versi aplikasi]/

Compile aplikasi dengan mengetikkan perintah

./configure

make

make install

Tambahkan baris /usr/local/lib pada file /etc/ld.so.conf

/sbin/ldconfig

Compile PostgreSQL

Buka console/terminal untuk memulai installasi

Pindah ke direktori dimana file aplikasi disimpan

Ekstract file PostgreSQL dengan mengetikkan

tar -xvf postgresql-[versi aplikasi].tar.gz

Pindah ke dalam folder aplikasi PostgreSQL dengan mengetikkan perintah

cd postgresql-[versi aplikasi]/

Compile aplikasi dengan mengetikkan perintah

./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test

/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data

createlang plpgsql [yourdatabase]
psql -d [yourdatabase] -f lwpostgis.sql
psql -d [yourdatabase] -f spatial_ref_sys.sql

6 comments

Mapserver dengan menggunakan data Oracle Spatial

Konversi data ESRI Shapefile (.shp) ke Oracle Spatial

D:\BAYU\data\fix\shp>shp2sdo

shp2sdo - Shapefile(r) To Oracle Spatial Converter

Version 2.13 24-Apr-2002

Copyright 1997,1998,1999,2000,2001,2002 Oracle Corporation

For use with Oracle Spatial.

Input shapefile (no extension): kecamatan

Shape file kecamatan.shp contains 1555 polygons

Output table [kecamatan]:

Output data model [O]:

Geometry column [GEOM]:

ID column []: id

Starting number [1]:

Use a spatial reference system ID (SRID) ? [N]: y

Please enter an SRID value: 4326

Change tolerance value from the default (0.00000005) ? [N]:

Generate data inside control files ? [N]:

Target database Oracle8i? [N]:

Spatial Data requires more than 6 digits precision? [N]:

Bounds: X=[108.594556,114.556928] Y=[-8.776988,-6.398623]

Override ? [N]:

Processing shapefile kecamatan into spatial table KECAMATAN

Data model is object-relational

Geometry column is GEOM

Id column is ID

Numbered from 1

Points stored in SDO_POINT attributes

Data is in a separate file(s)

Control file generation for Oracle9i or higher

Spatial data loaded with 6 digits of precision

SRID set to 4326

Conversion complete : 1555 polygons processed

The following files have been created:

kecamatan.sql : SQL script to create the table

kecamatan.ctl : Control file for loading the table

kecamatan.dat : Data file

Buat table di Oracle dari hasil konversi (.sql)

– kecamatan.sql

– This script creates the spatial table.

– Execute this script before attempting to use SQL*Loader

– to load the kecamatan.ctl file.

– This script will also populate the USER_SDO_GEOM_METADATA table.

– Loading the .ctl file will populate the KECAMATAN table.

– To load the .ctl file, run SQL*Loader

– with these parameters:

– USERID=username/password CONTROL=kecamatan.ctl

– After the data is loaded in the KECAMATAN table, you should

– tune the dataset and create the spatial index

– Creation Date : Sat Dec 22 18:09:02 2007

– Copyright 1999, 2000, 2001, 2002 Oracle Corporation

– All rights reserved

DROP TABLE KECAMATAN;

CREATE TABLE KECAMATAN (

ID NUMBER(38)

PRIMARY KEY,

KECAMATAN VARCHAR2(50),

DISTRICT VARCHAR2(50),

PROVINCE VARCHAR2(50),

J_RW VARCHAR2(2),

J_RT VARCHAR2(3),

J_KK NUMBER,

J_LAKI2 NUMBER,

J_PEREM NUMBER,

P_BBM VARCHAR2(7),

K_LOGAM NUMBER,

K_GERABAH NUMBER,

MAKANAN NUMBER,

KEDAI NUMBER,

SMB_PENGHA VARCHAR2(15),

LETAKGEOGR VARCHAR2(13),

KELOMPOK NUMBER,

KODE_KECAM NUMBER,

KODE_KABUP NUMBER,

KODE_PROPI NUMBER,

GEOM MDSYS.SDO_GEOMETRY);

DELETE FROM USER_SDO_GEOM_METADATA

WHERE TABLE_NAME = ‘KECAMATAN’ AND COLUMN_NAME = ‘GEOM’ ;

INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)

VALUES (’KECAMATAN’, ‘GEOM’,

MDSYS.SDO_DIM_ARRAY

(MDSYS.SDO_DIM_ELEMENT(’X’, 108.594555840, 114.556928040, 0.000000050),

MDSYS.SDO_DIM_ELEMENT(’Y’, -8.776988010, -6.398622990, 0.000000050)

),4326

);

COMMIT;

Insert data menggunakan sql loader

D:\BAYU\data\fix\shp>sqlldr user/password

control = kecamatan

SQL*Loader: Release 10.2.0.1.0 - Production on Sat Dec 22 18:10:44 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Commit point reached - logical record count 41

Commit point reached - logical record count 82

Commit point reached - logical record count 123

Commit point reached - logical record count 164

Commit point reached - logical record count 205

Commit point reached - logical record count 246

Commit point reached - logical record count 287

Commit point reached - logical record count 328

Commit point reached - logical record count 369

Commit point reached - logical record count 410

Commit point reached - logical record count 451

Commit point reached - logical record count 492

Commit point reached - logical record count 533

Commit point reached - logical record count 574

Commit point reached - logical record count 615

Commit point reached - logical record count 656

Commit point reached - logical record count 697

Commit point reached - logical record count 738

Commit point reached - logical record count 779

Commit point reached - logical record count 820

Commit point reached - logical record count 861

Commit point reached - logical record count 875

Commit point reached - logical record count 916

Commit point reached - logical record count 957

Commit point reached - logical record count 998

Commit point reached - logical record count 1039

Commit point reached - logical record count 1080

Commit point reached - logical record count 1121

Commit point reached - logical record count 1162

Commit point reached - logical record count 1165

Commit point reached - logical record count 1206

Commit point reached - logical record count 1247

Commit point reached - logical record count 1288

Commit point reached - logical record count 1329

Commit point reached - logical record count 1370

Commit point reached - logical record count 1411

Commit point reached - logical record count 1452

Commit point reached - logical record count 1493

Commit point reached - logical record count 1534

Commit point reached - logical record count 1554

Commit point reached - logical record count 1555

Copy libmap.dll dari D:\ms4w\Apache\cgi-bin\ignored-libmap\oracle10g\ ke D:\ms4w\Apache\cgi-bin

Edit httpd.conf, tambahkan baris

SetEnv TNS_ADMIN “D:/oracle/product/10.2.0/client_2/NETWORK/ADMIN/”

Folder where the tnsnames.ora exist

SetEnv PATH “D:/oracle/product/10.2.0/client_2/BIN/”

SetEnv ORACLE_HOME “D:/oracle/product/10.2.0/client_2?

Pada mapfile :

CONNECTIONTYPE oraclespatial

CONNECTION “username/password@service”

DATA “GEOM FROM (SELECT ID, KECAMATAN, DISTRICT, PROVINCE, GEOM FROM KECAMATAN) USING UNIQUE ID SRID 4326?

Kalo pake OGR, koneksinya ya begini :

CONNECTIONTYPE OGR

CONNECTION “OCI:username/password@service”

DATA “tablename”

Jadi deh….

5 comments