http://map.rab.co.id/g/-6.369368/106.832986Latitude -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.843870Kedua 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 updateKemudian pasang database server dan paket PostGIS:
# apt-get install postgresql-8.3 postgresql-8.3-postgisLanjutkan 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 mapBerikutnya 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.sqlLogin-lah ke database map:
$ psql mapBerikan 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 mapSaatnya 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:
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)'));