Tampilkan postingan dengan label Database. Tampilkan semua postingan
Tampilkan postingan dengan label Database. Tampilkan semua postingan

Permasalahan yang mungkin ditemukan bagi beberapa programmer web atau yang biasa menggunakan PostGIS adalah sumbu latitude dan longitude tertukar posisinya di kolom table basis data PostgreSQL. Akibatnya ketika suatu objek ditampilkan secara spasial di peta, akan berpindah jauh dari posisi yang sebenarnya. Dalam hal ini, spesifikasi untuk koordinat menggunakan EPSG:4326.

Misal ada table bernama resource yang memiliki kolom (field):
1. id_resource
2. geom
3. id_jenis_kategori

Tujuan: Menukar isi nilai latitude dan longitude pada kolom geom.

UPDATE resource SET geom = T.geom
FROM
(
SELECT id_resource, ST_SetSRID(ST_MakePoint(ST_Y(geom),ST_X(geom)),4326) AS geom FROM resource
WHERE id_jenis_kategori = '3001' AND ST_X(geom) < 25
) T
WHERE resource.id_resource = T.id_resource

Penjelasan Query:
1. UPDATE resource SET geom T.geom
Untuk mengubah isi nilai kolom geom dari hasil query SELECT (variable T.geom). T adalah variabel untuk mewakili hasil SELECT, sedangkan .geom adalah nama kolom dari hasil SELECT tabel T.

2. ST_SetSRID(ST_MakePoint(ST_Y(geom),ST_X(geom)),4326) AS geom
Fungsi ST_SetSRID untuk mengkonversi nilai point ke bilangan bulat (integer) dengan spesifikasi koordinat menggunakan EPSG:4326.
Fungsi ST_MakePoint untuk mengkonversi nilai longitude dan latitude ke geometry.

Referensi:

Untuk menampilkan titik (point) dari suatu objek dapat menggunakan ST_AsText seperti berikut:

SELECT ST_AsText(the_geom) FROM myTable;
untuk menampilkan sumbu X dan Y (longitude, latitude), dapat menggunakan query berikut:

SELECT ST_X(the_geom), ST_Y(the_geom) FROM myTable;
untuk poligon atau garis (line), menggunakan st_x(st_centroid(the_geom))

Referensi: https://gis.stackexchange.com/questions/42970/how-to-get-coordinates-from-geometry-in-postgis