Traffine I/O

Bahasa Indonesia

2023-04-06

Membangun Kontainer PostGIS dengan Docker

Membangun Kontainer PostGIS dengan Docker

Dalam artikel ini, saya akan memperkenalkan cara mengatur PostGIS menggunakan Docker. Dengan menggunakan citra Docker resmi yang disediakan di bawah ini, Anda dapat dengan mudah meluncurkan kontainer Docker PostgreSQL dengan PostGIS sudah terpasang.

https://registry.hub.docker.com/r/postgis/postgis/

Untuk memulai kontainer PostGIS, jalankan perintah berikut:

$ docker run --name my-postgis -e POSTGRES_PASSWORD=mysecretpassword -d postgis/postgis

Untuk masuk ke dalam kontainer dan terhubung ke PostgreSQL, gunakan perintah berikut:

bash
$ docker exec -it my-postgis psql -U postgres

postgres=#

Sekarang, Anda telah berhasil terhubung ke PostgreSQL.

Operasi PostGIS

Mari kita lakukan beberapa operasi dasar dengan PostGIS. Pertama, kita akan membuat tabel airports.

bash
postgres=# create table airports
            ( id serial primary key,
              name text,
              iata_code text,
              location geography(POINT, 4326)
            );

CREATE TABLE

Selanjutnya, masukkan data ke dalam tabel airports.

bash
postgres=# insert into airports (name, iata_code, location)
            values ( 'Haneda Airport' , 'HND' , ST_GeogFromText('SRID=4326;POINT(139.7776446 35.5493975)') );

INSERT 0 1

Sekarang, mari kita periksa tabel airports.

bash
postgres=# select * from airports;

 id |      name      | iata_code |                      location
----+----------------+-----------+----------------------------------------------------
  1 | Haneda Airport | HND       | 0101000020E6100000279DED76E2786140888043A852C64140
(1 row)

Mari coba mengonversi kolom location menjadi tipe POINT.

bash
postgres=# select id, name, iata_code, ST_AsText(location) from airports;

 id |      name      | iata_code |           st_astext
----+----------------+-----------+-------------------------------
  1 | Haneda Airport | HND       | POINT(139.7776446 35.5493975)
(1 row)

Terakhir, mari kita hitung jarak dari titik (139.00 35.00).

bash
postgres=# select ST_Distance(
  location,
  ST_GeogFromText('SRID=4326;POINT(139.00 35.00)')
  ) as distance from airports;

    distance
----------------
 93386.17699288
(1 row)

Referensi

https://registry.hub.docker.com/r/postgis/postgis/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!