waktu ibarat anak panah,sekali melesat tak mungkin kembali lagi

Menghitung jarak dua titik koordinat menggunakan PostGIS

Anda memiliki data berupa dua buah titik, dengan kata lain dua koordinat. Masalahnya sederhana, berapa meter jarak keduanya ? Jawabannya akan diselesaikan dengan PostGIS, sebuah fitur tambahan pada Database PostgreSQL yang dirancang khusus untuk masalah pemetaan.
Ada banyak sistem koordinat yang sudah didefinisikan. Di sini kita menggunakan sistem koordinat yang digunakan oleh peta pada umumnya, yaitu lintang dan bujur, alias latitude dan longitude. Keduanya tersimpan dalam bentuk bilangan desimal, bisa positif atau negatif. Berikut ini contoh koordinat Margonda, Depok:
http://map.rab.co.id/g/-6.369368/106.832986
Latitude -6,369368 berarti lintang selatan ( karena negatif ), dan longitude 106,832986 berarti bujur timur (karena positif). Koordinat kedua adalah Senen, Jakarta Pusat, yaitu:
http://map.rab.co.id/g/-6.179036/106.843870
Kedua koordinat ini akan dihitung jaraknya dalam satuan meter, dimana kita gunakan query pada PostgreSQL.
Pemasangan
Kita bisa gunakan distro Ubuntu atau distro berbasis Debian lainnya. Pertama kita perbaharui dulu daftar paket Debian, mulailah sebagai superuser:
$ sudo su

# apt-get update
Kemudian pasang database server dan paket PostGIS:
# apt-get install postgresql-8.3 postgresql-8.3-postgis
Lanjutkan dengan pembuatan user database, katakanlah bernama cepy. Anda perlu sebagai user postgres untuk melakukan itu:
# su postgres

$ createuser -P cepy

Password: ****
Kemudian buatkan cepy database map:
$ createdb -O cepy map
Berikutnya pasang PostGIS dalam database map. Ingat, Anda harus tetap sebagai user postgres untuk memasang PostGIS dalam database, karena ada pembuatan function yang mengacu ke C library.
$ createlang plpgsql map

$ psql map -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql

$ psql map -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
Login-lah ke database map:
$ psql map
Berikan hak akses untuk grup public agar dapat membaca tabel-tabel PostGIS:
GRANT SELECT ON geometry_columns TO public;

GRANT SELECT ON spatial_ref_sys TO public;
Logout dari psql dengan menekan tombol Ctrl-D, dan login-lah sebagai user cepy:
psql -U cepy map
Saatnya mencari jarak:
SELECT st_distance(

  st_transform(st_pointfromtext('POINT(106.832986 -6.369368)',4269),32661),

  st_transform(st_pointfromtext('POINT(106.843870 -6.179036)',4269),32661)

  );
   st_distance

------------------

46861.5191828321 (1 row)
Jawaban di atas berarti juga 46,86km. Selamat mencoba.
Referensi:

Comments :

1
Unknown mengatakan...
on 

kalau ane kayak gini gan :

select ST_DISTANCE(ST_GeographyFromText('SRID=4326;POINT(106.817675 -6.31805805555556)'),
ST_GeographyFromText('SRID=4326;POINT(106.816796944444 -6.31749583333333)'));

Posting Komentar

silahkan tinggalkan coment/kritikan anda,akan sangat membantu bt q.makasih sebelumya

About Me

Foto Saya
abdul&upin
Kota GADIS, east java, Indonesia
q orang yang masih awam dalam hal blogger seperti ini.....jadi pengen belajar aja.....kata bapak WHERE THEREIS A WILL THERE IS A WAY.......
Lihat profil lengkapku

Blog Archive

 

Copyright © 2009 by abdul sayang upin

Template by Blogger Templates | Powered by Blogger