Anda di halaman 1dari 68

Subscribe to DeepL Pro to translate larger documents.

Visit www.DeepL.com/pro for more information.


Dari edisi ke-2 PostGIS in
Action oleh Regina O. Obe dan
Leo S. Hsu

"PostGlS ln Action adalah buku yang bagus untuk mempelajari bagaimana


server GlS berfungsi. Membaca buku ini akan memberikan wawasan
kepada setiap pembaca mengenai cara terbaik untuk menyediakan
layanan peta untuk khalayak luas."

-Marcus Brown, Arsitek/Administrator GlS, Enel Green


Power

"Saya menjawab begitu banyak pertanyaan dengan SQL tradisional


sehingga, hanya karena penasaran, saya mencari tahu perbedaan apa
yang bisa dibuat oleh PostGlS; sekarang menurut saya tidak cukup
banyak pertanyaan yang ditanyakan, setidaknya tidak sebanyak yang
saya pikirkan untuk diselesaikan dengan toolbox baru ini."

-Arnaldo Ayala, Arsitek Perangkat Lunak, Consultores


lnformáticos S.R.L.

"PostGlS in Action adalah buku yang membuat Anda dapat dengan


cepat memulai dengan PostGlS dan memberikan Anda semua
keterampilan yang Anda butuhkan untuk memulai dengan GlS dan
membantu Anda meningkatkan data spasial Anda dengan cara-cara baru
yang kreatif."

-Weyert de Boer

"Buku ini adalah pengantar terbaik yang pernah saya lihat untuk para
insinyur yang ingin meningkatkan kemampuan dengan cepat dan
membangun pengetahuan ahli untuk membangun aplikasi GlS tingkat
lanjut."
-lkechukwu Okonkwo, Ilmuwan Data Utama, Orum.io
"Sebagai pengguna lama Postgres, saya selalu ingin tahu bagaimana
cara menggunakan PostGlS tapi tidak pernah tahu dari mana harus
memulai. Buku ini memberikan jawaban untuk saya, dan sekarang saya
merasa nyaman dalam mengimplementasikan Postgis untuk klien untuk
membantu mendukung kebutuhan mereka."

-Mike Haller, Manajer Senior

"Buku yang luar biasa hebat untuk dunia teknologi GlS. Benar-benar
belajar banyak!"

-DeUndre 'Rushon, CEO, DigiDiscover LLC

"Buku ini adalah permata dengan banyak informasi dan menunjukkan


betapa kuatnya PostGlS."

-Luis Moux-Dominguez, Arsitek Perangkat Lunak, EMO


PostGIS dalam Aksi
EDISI KETIGA

REGINA OBE DAN LEO HSU

Untuk berkomentar, buka liveBook

Pulau

Penampungan

Manning
Untuk informasi lebih lanjut tentang ini dan judul Manning lainnya,
kunjungi www.manning.com
Hak Cipta

Untuk informasi online dan pemesanan buku-buku ini dan


buku-buku Manning lainnya, silakan kunjungi
www.manning.com. Penerbit menawarkan diskon untuk
buku-buku ini jika dipesan dalam jumlah banyak.

Untuk informasi lebih lanjut, silakan hubungi

Departemen Penjualan Khusus


Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: orders@manning.com

©2021 oleh Manning Publications Co. Semua hak


cipta dilindungi undang-undang.

Tidak ada bagian dari publikasi ini yang boleh direproduksi,


disimpan dalam sistem pengambilan, atau ditransmisikan,
dalam bentuk apa pun atau dengan cara elektronik,
mekanik, fotokopi, atau lainnya, tanpa izin tertulis dari
penerbit.

Banyak sebutan yang digunakan oleh produsen dan penjual


untuk membedakan produk mereka diklaim sebagai merek
dagang.
Di mana sebutan-sebutan itu muncul dalam buku ini, dan
Manning
Publikasi menyadari adanya klaim merek dagang,
penunjukan telah dicetak dengan huruf besar awal atau
huruf besar semua.

Menyadari pentingnya melestarikan apa yang telah


ditulis, adalah kebijakan Manning untuk membuat buku-
buku yang kami terbitkan dicetak di atas kertas bebas
asam, dan kami mengerahkan upaya terbaik kami untuk itu.
Menyadari juga tanggung jawab kami untuk melestarikan
sumber daya planet kita, buku-buku Manning dicetak di
atas kertas yang setidaknya 15 persennya didaur ulang dan
diproses tanpa menggunakan unsur klorin.

Manning Publications Co.


20 Baldwin Road Technical
PO Box 761
Shelter lsland, NY 11964

Editor pengembangan:
SusanEthridge
Editor pengembangan teknis: Alain Couniot
Editor tinjauan: Dragosavljević Editor
produksi: Deirdre S. Hiam
: Andy
CarollKorektor: Melody
Dolab
Korektor teknis: Jan Hartman
Penata huruf:
DennisDesainer
sampul: Marija Tudor
lSBN: 9781617296697
dedikasi
Joan Alice Burnett Obe (1937-2021), seorang perintis, dokter yang berani,
dan ibu, dan Dr. Ernest Olagbade Obe (1935-2012), seorang profesor,
kepala, dan ayah yang hebat.
isi singkat

Bagian 1. Pengantar ke PostGIS


1 Apa yang dimaksud dengan basis data spasial?
2 Tipe data spasial
3 Sistem referensi spasial
4 Bekerja dengan data nyata
5 Menggunakan PostGIS pada desktop
6 Fungsi geometri dan geografi
7 Fungsi raster
8 Hubungan spasial

Bagian 2. Menerapkan PostGIS


untuk bekerja
9 Analisis kedekatan
10 Geocoder PostGIS TIGER
11 Pemrosesan geometri dan geografi
12 Pemrosesan raster
13 Membangun dan menggunakan topologi
14 Mengatur data spasial
15 Penyetelan kinerja kueri

Bagian 3. Menggunakan
PostGIS dengan perangkat lain
16 Memperluas PostGIS dengan
pgRouting dan bahasa prosedural
17 Menggunakan PostGIS dalam aplikasi web

Lampiran A. Sumber daya tambahan


Lampiran B. Menginstal, mengkompilasi, dan
meningkatkan Lampiran C. Primer SQL

indeks
isi
kata
pengant
ar kata
pengant
ar
ucapan terima
kasih tentang
buku ini tentang
Penulis
tentang ilustrasi sampul depan

Bagian 1. Pengantar ke PostGIS


1 Apa yang dimaksud dengan basis data spasial?
1.1 Berpikir secara spasial
1.2 Memperkenalkan PostGlS
Mengapa kesesuaian
Standar PostGlS PostGlS
sangat kuat
Dibangun di atas
PostgreSQL Gratis seperti
uang Gratis seperti
kebebasan Alternatif
untuk PostGlS

1.3 Menginstalasi PostGlS


Memverifikasi versi PostGlS dan PostgreSQL
1.4 Tipe data spasial
Jenis geometri Jenis
geografi Jenis
raster
Jenis topologi

1.5 Halo dunia nyata


Mencerna masalah
Pemodelan
Memuat data
Menulis kueri
Melihat data spasial dengan OpenJump

2 Tipe data spasial


2.1 Pengubah jenis
Pengubah jenis subtipe
Pengidentifikasi referensi
spasial

2.2 Geometri
Titik Garis
Garis
Poligon
Geometri koleksi
Koordinat M
Koordinat Z
Permukaan polihedral dan TlNs
Menghasilkan TlNs
Geometri melengkung
Katalog spasial untuk geometri

2.3 Geografi
Perbedaan antara geografi dan geometri Katalog
spasial untuk geografi

2.4 Raster
Properti raster
Membuat raster
Katalog spasial untuk raster

3 Sistem referensi spasial


3.1 Sistem referensi spasial: Apakah itu?
Datum
Geoid
Ellipsoids
Datum
Sistem referensi koordinat Sistem
referensi spasial yang penting
Proyeksi

3.2 Memilih sistem referensi spasial untuk


menyimpan data
Pro dan kontra menggunakan tipe data
EPSG:4326 Geografi untuk EPSG:4326
Pemetaan hanya untuk presentasi
Meliputi dunia ketika jarak menjadi masalah

3.3 Menentukan sistem referensi spasial dari


data sumber
Menebak sistem referensi spasial
Ketika SRS tidak ada dalam tabel spatial_ref_sys

3.4 Sejarah dukungan PROJ di PostGlS


PROJ 4
PROJ 5
PROJ 6
PROJ 7
PROJ 8 dan seterusnya

4 Bekerja dengan data nyata


4.1 Alat bantu bawaan PostgreSQL
Psql
pgAdmin4
Pg_dump dan pg_restore
Mengunduh file

4.2 Mengekstrak file


4.3 Mengimpor dan mengekspor shapefile
Mengimpor dengan shp2pgsql
Mengimpor dan mengekspor dengan
shp2pgsql-gui Mengekspor dengan
pgsql2shp

4.4 Mengimpor dan mengekspor data vektor


dengan ogr2ogr
Variabel lingkungan di ogr2ogr
Ogrinfo
Mengekspor dengan
ogr2ogr Mengekspor
dengan ogr2ogr

4.5 Mengajukan kueri data eksternal menggunakan


pembungkus data asing PostgreSQL
Pembungkus data asing File_fdw
Pembungkus data asing Ogr_fdw
Pembungkus data asing
Mengonversi tag hstore ke jsonb

4.6 Mengimpor data raster dengan raster2pgsql


Peralihan baris perintah raster2pgsql
Format yang didukung raster2pgsql
Memuat satu file dengan raster2pgsql
Memuat banyak file dan ubin dalam skrip shell
Menggunakan fungsi PostgreSQL untuk
menampilkan data raster

4.7 Mengekspor data raster dengan GDAL


Menggunakan gdalinfo untuk memeriksa
raster Gdal_translate dan gdalwarp

5 Menggunakan PostGIS pada desktop


5.1 Sekilas tentang alat bantu tampilan desktop
OpenJUMP
QGlS
gvSlG
Dukungan basis data spasial
Jupyter Notebook dan JupyterLab
Dukungan format
Layanan web yang didukung
5.2 OpenJUMP
Ringkasan fitur OpenJUMP lnstalasi
OpenJUMP
Kemudahan
penggunaan Plug-in
OpenJUMP Skrip
OpenJUMP
Dukungan format
OpenJUMP Dukungan
PostGlS Mendaftarkan
sumber data
Merender geometri PostGlS
Mengekspor data

5.3 QGlS
Menginstalasi QGlS
Menggunakan QGlS dengan PostGlS

5.4 GvSlG
Menggunakan gvSlG
dengan PostGlS
Mengekspor data

5.5 JupyterLab dan Jupyter Notebook


Memasang Jupyter
Meluncurkan Jupyter
Notebook Meluncurkan
JupyterLab Membuat buku
catatan Python Perintah-
perintah ajaib
Melakukan kueri mentah dengan Jupyter Notebook
Menggunakan GeoPandas, Shapely, dan Matplotlib untuk bekerja
dengan data spasial Melihat data pada peta dengan folium

6 Fungsi geometri dan geografi


6.1 Fungsi keluaran
Teks terkenal (WKT) dan Bahasa Markup Lubang Kunci
(KML) biner terkenal (WKB)
Bahasa Markah Geografi (Geography Markup Language, GML)
Notasi Objek JavaScript Geometri (GeoJSON)
Grafik Vektor yang Dapat Diskalakan (SVG)
Ubin Vektor Mapbox (MVT) dan penyangga
protokol Tiny WKB (TWKB)
Grafik 3D yang Dapat
Diperluas (X3D) Contoh
fungsi keluaran Geohash

6.2 Fungsi-fungsi konstruktor


Membuat geometri dari format teks dan biner Membuat
geografi dari format teks dan biner
Menggunakan teks atau representasi biner sebagai argumen fungsi

6.3 Fungsi pengakses dan pengatur


Pengidentifikasi referensi spasial
Mentransformasikan geometri ke referensi spasial yang
berbeda Menggunakan transformasi dengan tipe
geografi Fungsi tipe geometri
Dimensi geometri dan koordinat Mengambil
koordinat
Memeriksa validitas geometri
Jumlah titik yang mendefinisikan geometri

6.4 Fungsi pengukuran


Pengukuran geometri planar
Pengukuran geodetik

6.5 Fungsi dekomposisi


Kotak pembatas geometri
Batas dan mengubah poligon menjadi string garis
Centroid, median, dan titik pada permukaan
Titik balik yang mendefinisikan geometri
Menguraikan koleksi multi-geometri dan geometri

6.6 Fungsi komposisi


Membuat titik
Membuat poligon
Mempromosikan geometri tunggal ke multi-geometri
6.7 Fungsi penyederhanaan
Penjepretan kisi dan pembulatan koordinat
Penyederhanaan

7 Fungsi raster
7.1 Terminologi raster
7.2 Konstruktor raster
Mengonversi geometri ke raster dengan ST_AsRaster
Memuat raster dengan raster2pgsql
Membangun raster dari awal: ST_MakeEmptyRaster dan ST_AddBand
Mengatur piksel: ST_SetValue dan ST_SetValues
Membuat raster dari raster lain
Mengonversi format raster lain dengan ST_FromGDALRaster

7.3 Fungsi output raster


ST_AsPNG, ST_AsJPEG, dan ST_AsTiff
Keluaran menggunakan
ST_AsGDALRaster Menggunakan
psql untuk mengekspor raster

7.4 Pengakses dan pengatur raster


Properti metadata raster dasar
Statistik piksel
Pengakses nilai piksel
Pengatur metadata pita

7.5 Fungsi georeferensi


Pengatur metadata
Fungsi pemrosesan

7.6 Fungsi reklasifikasi


7.7 Fungsi poligonisasi
ST_ConvexHull
ST_Envelope
ST_Polygon
ST_MinConvexHull
8 Hubungan spasial
8.1 Kotak pembatas dan pembanding geometri
Kotak pembatas Kotak
pembanding Kotak
pembanding

8.2 Menghubungkan dua geometri


lnterior, eksterior, dan batas dari sebuah geometri
lnterseksi
Model denah rumah Berisi
dan berada di dalam
Meliputi dan ditutupi oleh
Berisi dengan benar
Geometri yang tumpang
tindih Geometri yang
bersentuhan
Wajah-wajah kesetaraan: geometri Dasar-
dasar fungsi hubungan

Bagian 2. Menerapkan PostGIS


untuk bekerja
9 Analisis kedekatan
9.1 Pencarian tetangga terdekat
Tempat mana yang berada dalam jarak X?
Menggunakan ST_DWithin dan ST_Distance untuk N hasil
terdekat Menggunakan ST_DWithin dan DlSTlNCT ON untuk
menemukan lokasi terdekat lnterseksi dengan toleransi
ltem antara jarak
Menemukan N tempat terdekat menggunakan operator jarak KNN

9.2 Menggunakan KNN dengan tipe geografi


Menggunakan fungsi jendela untuk menomori N tempat terdekat

9.3 Penandaan geografis


Menandai data ke wilayah tertentu
Referensi linier: menjepret titik ke fungsi jendela klaster
PostGlS linestring terdekat
10 Geocoder PostGIS TIGER
10.1 Menginstalasi geocoder PostGlS TlGER
10.2 Memuat data TlGER
Tabel konfigurasi
Memuat data negara dan negara bagian

10.3 Menormalkan alamat


Menggunakan normalize_address
Menggunakan normalisasi alamat PAGC

10.4 Geocoding
Geocoding menggunakan teks alamat
Geocoding menggunakan alamat yang
dinormalisasi Persimpangan geocoding
Pengkodean geografis batch

10.5 Membalikkan geocoding


11 Pemrosesan geometri dan geografi
11.1 Menggunakan fungsi agregat spasial
Membuat multipoligon dari banyak catatan multipoligon
Membuat string garis dari titik-titik

11.2 Memotong, membelah, menggunting


Kliping
Membelah
Tessellating

11.3 Memecah string garis menjadi segmen yang lebih


kecil
Segmentasi string garis
Membuat string garis dua titik dari string garis banyak titik
Memecah string garis di persimpangan titik

11.4 Menerjemahkan, menskalakan, dan memutar


geometri
Menerjema
hkan
Penskalaan
Berputar
11.5 Menggunakan fungsi geometri untuk
memanipulasi dan membuat geografi
Fungsi yang aman dari cor

12 Pemrosesan raster
12.1 Memuat dan menyiapkan data raster
12.2 Membentuk raster yang lebih besar
menggunakan fungsi agregat spasial
Menyusun kembali file ubin
Mengukir area yang menarik menggunakan kliping dan
penggabungan Menggunakan jenis ekspresi tertentu
dengan ST_Union

12.3 Bekerja dengan band


Menggunakan ST_AddBand untuk membentuk raster multiband
dari raster band tunggal
Menggunakan ST_Band untuk memproses subset band

12.4 Raster ubin


12.5 Perpotongan raster dan geometri
Statistik piksel
Menambahkan koordinat Z ke garis-garis 2D menggunakan ST_Value
dan ST_SetZ Mengonversi poligon 2D ke poligon 3D

12.6 Statistik raster


Mengekstrusi nilai piksel
Fungsi statistik raster

12.7 Aljabar peta


Memilih antara ekspresi atau fungsi pemanggilan
kembali Menggunakan ekspresi aljabar peta pita
tunggal Menggunakan fungsi aljabar peta pita
tunggal
Memetakan aljabar dengan lingkungan

13 Membangun dan menggunakan topologi


13.1 Apa itu topologi
13.2 Menggunakan topologi
Menginstal ekstensi topologi
Membuat topologi
Jenis topogeometri Rekap
penggunaan topologi

13.3 Topologi Victoria, BC


Membuat topologi Victoria
Menambahkan primitif ke topologi
Membuat topogeometri

13.4 Memperbaiki masalah topogeometri dengan


mengedit primitif topologi
Menghapus wajah dengan menghapus tepi
Memeriksa wajah bersama
Mengedit topogeometri

13.5 Memasukkan dan mengedit kumpulan data yang


besar
13.6 Menyederhanakan dengan mempertimbangkan
topologi
13.7 Fungsi validasi dan ringkasan topologi
14 Mengatur data spasial
14.1 Pendekatan penyimpanan spasial
Kolom heterogen Kolom
homogen Typmod vs.
batasan Pewarisan tabel
Partisi meja

14.2 Memodelkan sebuah kota yang nyata


Pemodelan menggunakan kolom geometri heterogen
Pemodelan menggunakan kolom geometri homogen
Pemodelan menggunakan partisi

14.3 Membuat tampilan yang dapat diperbarui secara


otomatis
14.4 Menggunakan pemicu dan aturan
Pemicu
Menggunakan pemicu
lNSTEAD OF Menggunakan
pemicu lain

15 Penyetelan kinerja kueri


15.1 Perencana kueri
Berbagai jenis kueri spasial
Ekspresi tabel yang umum dan bagaimana pengaruhnya terhadap
rencana

15.2 Statistik perencana


15.3 Menggunakan penjelasan untuk mendiagnosis
masalah
Penjelasan teks vs. penjelasan grafis
pgAdmin Rencana tanpa indeks

15.4 Perencana dan indeks


Rencana dengan indeks indeks
spasial

15.5 Pola-pola SQL yang umum dan pengaruhnya


terhadap rencana
Subkueri dalam SELECT
DARI subkueri dan ekspresi tabel umum CTE dasar (CTE) Fungsi
jendela dan penggabungan sendiri
Lateral bergabung

15.6 Pengaturan sistem dan fungsi


Variabel sistem utama yang memengaruhi
strategi rencana Pengaturan khusus fungsi
Mendorong rencana paralel

15.7 Mengoptimalkan data spasial


Memperbaiki geometri yang tidak valid
Mengurangi jumlah simpul dengan penyederhanaan
Mengurangi jumlah simpul dengan memecah geometri menjadi
beberapa bagian Pengelompokan

Bagian 3. Menggunakan
PostGIS dengan perangkat lain
16 Memperluas PostGIS dengan
pgRouting dan bahasa prosedural
16.1 Memecahkan masalah perutean
jaringan dengan pgRouting
Menginstalasi pgRouting

16.2 Memperluas PostgreSQL dengan PL


Instalasi dasar PL Apa
yang dapat Anda lakukan
dengan PL

16.3 PL / R
Memulai dengan PL/R Apa
yang dapat Anda lakukan
dengan PL/R Menggunakan
paket-paket R dalam PL/R
Mengubah geometri menjadi objek spasial R dan memplot objek
spasial
Mengeluarkan plot sebagai binari

16.4 PL/Python
Menginstal PL/Python
Menulis fungsi PL/Python
Menggunakan paket Python
Contoh geocoding

16.5 PL/V8: JavaScript di dalam basis data


Menginstalasi PL/V8
Mengaktifkan PL/V8 dalam database
Menggunakan pustaka dan fungsi JavaScript lainnya di
PL/V8 Menggunakan PL/V8 untuk menulis fungsi aljabar
peta

17 Menggunakan PostGIS dalam aplikasi web


17.1 Keterbatasan teknologi web konvensional
17.2 Memetakan server
Server pemetaan ringan
Server pemetaan penuh
17.3 Memetakan klien
Layanan hak milik

17.4 Menggunakan MapServer


Pertimbangan
keamanan dalam
menginstal MapServer
Membuat layanan WMS dan WFS
Memanggil layanan pemetaan menggunakan proxy terbalik

17.5 Menggunakan GeoServer


Menginstalasi GeoServer
Menyiapkan ruang kerja PostGlS
Mengakses lapisan PostGlS melalui GeoServer WMS/WFS

17.6 Dasar-dasar OpenLayers dan Leaflet


Primer OpenLayers
Primer selebaran
Sinopsis dari OpenLayers dan Leaflet APls

17.7 Menampilkan data dengan kueri PostGlS dan


skrip web
Menggunakan fungsi keluaran geometri PostGlS dan
PostgreSQL Menggunakan fungsi keluaran MVT
PostGlSMapbox Vector Tiles (MVT)

Lampiran A. Sumber daya tambahan


Lampiran B. Menginstal, mengkompilasi, dan
meningkatkan Lampiran C. Primer SQL

indeks
masalah depan

kedepan kata
Sebagai anak-anak, kita mungkin pernah diberitahu bahwa
"kita adalah apa yang kita makan," sebagai pengingat
bahwa pola makan kita merupakan bagian integral dari
kesehatan dan kualitas hidup kita. Di dunia modern, dengan
ponsel pintar yang sadar lokasi di saku kita, unit GPS di
kendaraan kita, dan alamat internet di komputer kita yang
diberi kode geografis, telah menjadi kenyataan bahwa
"siapa kita adalah di mana kita berada" -setiap orang
sekarang menjadi sensor bergerak, menghasilkan aliran
data yang dikodekan lokasi tanpa henti saat mereka
bergerak di planet ini.

Untuk mengelola dan menjinakkan aliran data tersebut, dan


aliran data paralel yang dibuka oleh pencitraan satelit yang
ekonomis dan pemetaan urun daya, kita membutuhkan alat
yang setara dengan tugas tersebut. Alat yang dapat
menyimpan data dengan baik, mengaksesnya secara efisien,
dan menganalisisnya dengan baik. Kita membutuhkan basis
data spasial, seperti PostGlS.

Sebelum munculnya basis data spasial, analisis komputer


terhadap data lokasi dan pemetaan dilakukan dengan
sistem informasi geografis (GlS) yang berjalan pada
workstation desktop. Ketika pertama kali dirilis pada tahun
2001, nama proyek ini hanyalah permainan kata yang
sederhana - secara alami, ekstensi spasial dari basis data
"PostgreSQL" akan diberi nama "PostGlS".
Tetapi nama ini semakin penting seiring dengan semakin
matangnya proyek ini. Setiap tahun, fungsi-fungsi baru telah
ditambahkan untuk analisis data, dan setiap tahun
pengguna telah menekan fungsi-fungsi tersebut lebih jauh
dan lebih jauh lagi, melakukan jenis pekerjaan yang pada
tahun-tahun sebelumnya akan membutuhkan stasiun kerja
GlS khusus. PostGlS sebenarnya menciptakan dunia pasca-
GlS-kita tidak memerlukan perangkat lunak GlS untuk
melakukan pekerjaan GlS lagi. Basis data spasial sudah
cukup.

Pada bulan Maret 2002, belum genap satu tahun setelah


rilis pertama PostGlS, saya bertanya di milis pengguna
tentang contoh penggunaan PostGlS.

Dalam postingan pertamanya di daftar tersebut, Regina Obe


menjawab seperti ini:

Kami menggunakannya di sini [kota Boston] untuk analisis kedekatan.


Bagian dari departemen kami bertanggung jawab untuk
mendistribusikan properti yang disita kepada pengembang, dll., untuk
membangun rumah, bisnis, dll. Kami menggunakan PostGlS untuk
membuat daftar properti berdasarkan kedekatannya... sehingga jika
pengembang ingin mengembangkan sebidang tanah dengan ukuran,
katakanlah, X, mereka dapat mengetahui apakah hal tersebut dapat
dilakukan.

Bahkan pada tanggal awal proyek ini, Regina Obe sudah


menguji kemampuan PostGlS dan membuat analisis yang
cerdas.

Sejak PostGlS in Action pertama kali dirilis pada tahun


2011, PostGlS sendiri tetap beraksi, menambahkan fitur-
fitur baru untuk analisis raster, 3D, pengelompokan, data
temporal, topologi, dan banyak lagi. Dan dunia juga terus
bergerak.
Hampir dua dekade yang lalu, ketika PostGlS masih baru,
gagasan bahwa hampir setiap orang akan memiliki unit
GPS (sebuah
ponsel) di saku mereka adalah hal yang cukup gila, dan
sekarang sudah menjadi hal yang biasa. Fitur-fitur PostGlS
untuk mengelola lokasi kini digunakan secara luas oleh
para pengembang yang hanya beberapa tahun yang lalu
belum pernah mendengar tentang data spasial.

Selama beberapa tahun terakhir, citra satelit dan udara


telah masuk ke pasar massal, sistem drone menjadi hal
yang biasa, dan sensor lokasi dipasang di hampir semua
aset yang bergerak. Jumlah data yang harus dianalisis-dan
kecepatan serta volume data tersebut-semakin tinggi dari
sebelumnya.

Pada saat yang sama, PostGlS tidak pernah semudah ini


untuk digunakan untuk Anda. Anda bisa mendapatkan
salinannya di penyedia cloud mana pun, Anda bisa
mengunduh build untuk platform apa pun, dan jika Anda
cukup tertarik, Anda masih bisa mengunduh kode sumber
terbuka dan membuatnya sendiri, seperti yang dilakukan
Regina beberapa tahun yang lalu.

Nikmati buku ini dan wawasan yang diberikannya dalam


memanfaatkan data lokasi. Regina dan Leo telah
menyaring informasi yang sangat banyak menjadi sebuah
panduan ringkas yang benar-benar unik.

Paul Ramsey

Ketua, Komite Pengarah Proyek PostGlS

pref ace
PostGlS (dibaca post-jis) adalah pemanjang basis data spasial
untuk basis data relasional sumber terbuka PostgreSQL
Ini adalah mesin basis data spasial open source yang paling
kuat. lt menambahkan beberapa tipe data spasial dan lebih
dari 400 fungsi untuk bekerja dengan tipe-tipe spasial
tersebut ke dalam PostgreSQL. PostGlS mendukung banyak
fungsi spasial yang sesuai dengan OGC/lSO SQL/MM yang
dapat Anda temukan di basis data relasional lain seperti
Oracle, SQL Server, MySQL, dan lBM DB2, serta berbagai
fitur spasial tambahan yang unik untuk PostGlS.

Sejak edisi terakhir buku ini, database lain telah


menambahkan fungsionalitas spasial yang sering kali
merupakan bagian dari fungsionalitas yang disediakan
PostGlS. Anda akan melihat fungsi-fungsi dengan nama
yang sama di Google BigQuery dan Snowflake. Banyak
penyedia cloud juga sekarang menawarkan
PostgreSQL/PostGlS dalam Database sebagai Layanan
(DBaaS).

Pembaca yang berasal dari basis data spasial yang sesuai


dengan ANSl/lSO, atau basis data relasional lainnya, akan
merasa nyaman dengan PostgreSQL dan PostGlS.
PostgreSQL adalah salah satu sistem manajemen basis data
yang paling sesuai dengan ANSl/lSO SQL.

Tujuan utama dari buku ini adalah untuk menyediakan


sebuah buku pendamping dari dokumentasi resmi PostGlS -
untuk menjadi buku panduan dalam menavigasi ratusan
fungsi yang ditawarkan oleh PostGlS. Kami ingin membuat
sebuah buku yang dapat mendata banyak masalah spasial
yang sering kita temui dan berbagai strategi untuk
menyelesaikannya dengan PostGlS.

Di atas dan di luar misi utama kami, kami berharap dapat


meletakkan dasar untuk berpikir secara spasial. Kami
berharap Anda dapat
untuk mengadaptasi berbagai contoh dan resep kami ke
bidang usaha Anda sendiri, dan bahkan mungkin
menelurkan keturunan kreatif Anda sendiri.

ackn owledgments
Pertama-tama kami ingin mengucapkan terima kasih kepada
para pengelola paket PostGlS; khususnya, Sebastiaan
Couwenberg, Devrim Gündüz, Greg Troxel, dan Christoph
Berg yang telah memberikan banyak panduan dalam
meningkatkan rilis PostGlS dan tanpa mereka banyak yang
tidak akan memiliki PostGlS.

Kami juga ingin mengucapkan terima kasih kepada tim


pengembangan PostGlS dan Komite Pengarah Proyek,
khususnya kepada Paul Ramsey, Sandro Santilli, Raúl Marín
Rodríguez, Darafei Praliaskouski, Bborie Park, Dan Baston,
Martin Davis, dan Nicklas Avén yang telah memberikan
kontribusi pada fitur-fitur baru yang dibahas dalam buku
ini.

Kami berterima kasih kepada semua orang di Manning


Publications. Khususnya, editor pengembangan kami, Susan
Ethridge, yang telah membantu kami menyempurnakan
bab-bab kami dan memberikan masukan-masukan yang
sangat dibutuhkan; copy editor kami, Andy Carroll, yang
telah menemukan banyak kalimat yang tidak masuk akal,
referensi kode yang tidak valid, dan tautan yang tidak valid,
serta mengecek kebenaran dari pernyataan-pernyataan
kami; serta para pengulas teknis kami yang telah menguji
kode kami dan menemukan kesalahan-kesalahan pada
kode kami sejak awal. Kami juga berterima kasih kepada
penerbit Marjan Bace; editor peninjau Aleksandar
Dragosavljevic yang telah mengorganisir umpan balik dari
para peninjau; serta tim produksi dan editorial kami yang
terdiri dari Becky Whitney dan Deirdre Hiam
korektor, Melody Dolab, serta pihak-pihak lain yang
membuat kami tetap fokus selama proses berlangsung.

Terima kasih khusus kepada para kontributor PostGlS


terdahulu yang kontribusinya telah menjadi tulang punggung
PostGlS: Olivier Courtin (untuk mengenang), Mateusz Loskot,
Pierre Racine, dan banyak lagi yang lainnya. Kami berterima
kasih kepada komunitas pelanggan newsgroup PostGlS yang
telah menjawab pertanyaan sebaik dan secepat mungkin,
dan para blogger PostGlS - masing-masing dengan caranya
sendiri memberikan perasaan hangat dan akrab kepada para
pendatang baru di PostGlS.

Paparan kami terhadap PostGlS tidak akan mungkin terjadi


tanpa Departemen Pengembangan Lingkungan Kota
Boston (DND), khususnya divisi MlS dan Pengembangan
Kebijakan dan Penelitian di mana Regina pertama kali
terpapar dengan GlS dan PostGlS.

Kami juga ingin mengucapkan terima kasih kepada para


pengulas kami: Alvin Scudder, Arnaldo Ayala, Billy
O'Callaghan, Biswanath Chowdhury, Carla Butler, Chris
Viner, Daniel Tomás Lares, Daniele Andreis, DeUndre
'Rushon, Dhivya Sivasubramanian, Evyatar Kafkafi, Hilde
Van Gysel, lkechukwu, Okonkwo, Jesus Manuel Lopez
Becerra, Luis Moux-Dominguez, Marcus Brown, Mike Haller,
Mike Jensen, Paulo Vieira, Philip Patterson, Richard Meinsen,
Vladimir Kuptsov, dan Weyert de Boer. Saran-saran Anda
telah membantu menjadikan buku ini lebih baik.

Terakhir, kami berterima kasih kepada para pembaca MEAP


yang telah memberikan kritik konstruktif yang sangat
berharga dan menemukan kesalahan-kesalahan di awal
kode dan penjelasan kami.
tentang t buku ini
Buku ini difokuskan pada seri PostGlS 3 dan 3.1 dan
PostgreSQL 11-13. Buku ini bukanlah pengganti
dokumentasi resmi PostGlS atau PostgreSQL. Dokumentasi
resmi PostGlS melakukan pekerjaan yang baik dalam
memperkenalkan Anda pada segudang fungsi yang
tersedia di PostGlS dan memberikan contoh bagaimana
cara menggunakannya. Tetapi, dokumentasi tersebut tidak
akan memberi tahu Anda bagaimana cara menggabungkan
semua fungsi tersebut ke dalam sebuah resep untuk
memecahkan masalah Anda. Itulah tujuan dari buku ini.
Meskipun tidak mencakup semua fungsi yang tersedia di
PostGlS, buku ini mencakup fungsi-fungsi yang lebih umum
digunakan dan menarik serta memberikan Anda
keterampilan yang Anda butuhkan untuk
menggabungkannya untuk memecahkan masalah-masalah
klasik dan lebih esoterik namun menarik dalam analisis dan
pemodelan spasial.

Meskipun Anda dapat menggunakan buku ini sebagai


sumber referensi, kami sarankan Anda juga mengunjungi
situs resmi PostGlS di https://postgis.net.

Buku ini berfokus pada geometri vektor Cartesian


dua dan tiga dimensi yang tidak melengkung,
geometri vektor geodetik dua dimensi, data raster,
dan topologi jaringan.

Meskipun tujuan utama dari buku ini adalah penggunaan


PostGlS, kami akan gagal dalam misi kami jika kami lalai
memberikan beberapa perspektif tentang lanskap tempat
tinggalnya.
PostGlS bukanlah sebuah pulau dan jarang bekerja sendiri.
Untuk melengkapi siklus ini, kami juga menyertakan hal-hal
berikut ini:
Sebuah lampiran ekstensif yang mencakup PostgreSQL
dengan sangat rinci mulai dari pengaturan,
pencadangan, hingga manajemen keamanan.
Lampiran ini juga mencakup dasar-dasar SQL dan
membuat fungsi dan objek lain dengannya.
Beberapa bab didedikasikan untuk penggunaan PostGlS
dalam pemetaan web, melihat menggunakan alat
desktop, bahasa PostgreSQL PL yang biasa digunakan
dengan PostGlS, dan tambahan open source seperti
geocoder TlGER yang dipaketkan dengan PostGlS dan
pgRouting yang dipaketkan secara terpisah.

Buku ini sama sekali tidak mencoba untuk memberikan


perlakuan yang ketat terhadap matematika yang
mendasari pustaka PostGlS. Kami mengandalkan
pemahaman intuitif untuk konsep-konsep seperti titik,
garis, dan poligon. Dengan cara yang sama, kami tidak
dapat mempelajari teori basis data. Jika kami memprediksi
bahwa indeks tertentu akan lebih efektif daripada indeks
yang lain, kami membuat tebakan yang terdidik dari
pengalaman, bukan dari menguasai aljabar relasional dan
membedah beberapa chip komputer di sepanjang jalan.

Siapa yang harus membaca buku ini?


Buku ini memberikan pengenalan kepada PostGlS, dan
mengasumsikan tingkat kenyamanan dasar dengan
pemrograman dan bekerja dengan data. Jenis orang yang
kami temukan paling tertarik dengan PostGlS dan paling
cocok untuk membaca buku ini tercantum di sini.

PRAKTISI DAN PEMROGRAM SIG


Anda mengetahui segala sesuatu tentang data, geoid, dan
proyeksi. Anda tahu di mana menemukan sumber data.
Anda dapat membuat aplikasi yang menakjubkan dengan
ArcGlS, Maplnfo, Leaflet, OpenLayers, Google Maps, atau
perangkat lain yang mendukung Ajax. Anda mahir dalam
menghasilkan sumber data dalam shapefile Esri,
menggunakan QGlS atau ArcGlS, dan membuat karya
kartografi. Anda bahkan mungkin dapat menambahkan data
ke dan mengekstraknya dari basis data yang diaktifkan
secara spasial, tetapi ketika ditanyai pertanyaan tentang
data, Anda terjebak. Mampu menggambar semua Walmart
di Amerika Serikat di peta adalah satu hal, tetapi mampu
menjawab pertanyaan, "Berapa banyak Walmart di sebelah
timur Mississippi," tanpa menghitung masing-masing
pushpins adalah permainan yang sangat berbeda. Tentu
saja, Anda mungkin telah menggunakan alat desktop dan
kode prosedural tertulis untuk menjawab pertanyaan-
pertanyaan ini, namun kami berharap dapat menunjukkan
cara yang lebih cepat.

Jadi, apa yang ditawarkan oleh basis data yang diaktifkan


secara spasial yang belum Anda miliki di ujung jari Anda?

Ini memberikan kemampuan untuk menggabungkan


data spasial dengan data perusahaan lainnya dengan
mudah, seperti informasi keuangan, data observasi, dan
informasi pemasaran. Ya, Anda dapat melakukan hal ini
dengan shapefile Esri, file KML, dan format file GlS
lainnya, namun hal ini membutuhkan langkah ekstra
dan membatasi pilihan Anda untuk menggabungkan
dengan data lain yang relevan. Sebuah database
seperti PostgreSQL memiliki fitur seperti perencana
kueri yang meningkatkan kecepatan penggabungan
data Anda dan banyak fungsi statistik yang umum
digunakan untuk membuat pertanyaan yang cukup
rumit dan ringkasan statistik yang relatif cepat untuk
dijalankan dan cepat ditulis.
Ketika mengumpulkan data pengguna, apakah
pengguna tersebut menggambar geometri di layar dan
memasukkan informasi terkait atau mengklik sebuah
titik di peta, ada begitu banyak infrastruktur yang
dibangun di sekitar basis data sehingga tugas tersebut
jauh lebih mudah jika Anda menggunakannya. Sebagai
contoh, Anda dapat menggunakan aplikasi web Anda
sendiri dalam bahasa .NET, PHP, Perl, Python, Java, atau
bahasa lainnya. Masing-masing sudah memiliki driver
untuk PostgreSQL untuk memudahkan memasukkan
dan menanyakan data. Tambahkan ke dalam campuran
fungsi teks-ke-geometri, geometri-ke-SVG, -KML, dan -
GeoJSON, dan fungsi pemrosesan lainnya yang
disediakan PostGlS, bersama dengan fungsi pembuatan
dan manipulasi geometri yang dimiliki oleh platform
seperti OpenLayers, MapServer, dan GeoServer, dan
Anda memiliki banyak sekali pilihan untuk dipilih.
Basis data relasional menyediakan dukungan
administratif untuk mengontrol dengan mudah siapa
yang memiliki akses ke apa, apakah itu atribut teks atau
geometri.
PostgreSQL menawarkan pemicu yang dapat
memungkinkan pembuatan hal-hal lain seperti geometri
terkait di tabel lain ketika peristiwa basis data tertentu
terjadi.
PostgreSQL memiliki inti transaksional kontrol
konkurensi multi-versi (MVCC) untuk memastikan
bahwa ketika 100 pengguna membaca atau
memperbarui data Anda pada saat yang sama, sistem
Anda tidak akan terhenti. PostgreSQL menyediakan
kemampuan untuk menulis fungsi khusus dalam
database yang dapat dipanggil dari berbagai aplikasi.
PostgreSQL menawarkan beberapa pilihan bahasa yang
dapat dipilih ketika menulis fungsi yang tersimpan.
Jika Anda sudah terbiasa dengan alat desktop GlS yang
Anda sukai, jangan khawatir. Memilih DBMS spasial
seperti PostGlS tidak berarti Anda harus meninggalkan
alat pilihan Anda. Manifold, Cadcorp, Maplnfo 10+,
AutoCAD, Esri ArcGlS, ArcMap, Server tools, dan
berbagai alat desktop yang umum digunakan memiliki
dukungan bawaan untuk PostGlS. Safe FME, sebuah
ekstrak-transformasi-muat (ETL) favorit para profesional
GlS, telah mendukung PostGlS untuk waktu yang lama.

PRAKTISI DB
Pada suatu saat dalam karier database Anda, seseorang
mungkin pernah mengajukan pertanyaan yang berorientasi
spasial tentang data.
Tanpa basis data yang diaktifkan secara spasial, Anda
dipaksa untuk membatasi pemikiran Anda dalam hal
koordinat, nama lokasi, atau atribut geografis lainnya yang
dapat direduksi menjadi angka dan huruf. Hal ini bekerja
dengan baik untuk data titik, tetapi Anda akan mengalami
kebingungan ketika area dan wilayah ikut bermain. Anda
mungkin dapat menemukan semua orang yang bernama
Smith di dalam sebuah wilayah, tetapi jika kami meminta
Anda untuk menemukan semua keluarga Smith yang
tinggal dalam jarak 10 mil dari wilayah tersebut, Anda akan
kesulitan.

Kami ingin para pembaca yang memiliki latar belakang


basis data relasional standar menyadari bahwa data lebih
dari sekadar angka, tanggal, dan karakter, dan bahwa
kemampuan SQL yang luar biasa dapat dilakukan terhadap
data non-tekstual. Tentu saja, Anda mungkin telah
menyimpan gambar, dokumen, dan keanehan lainnya
dalam database relasional Anda, tetapi kami ragu Anda
dapat melakukan banyak hal dengan cara menulis
gabungan SQL terhadap bidang-bidang ini.
ILMUWAN, PENELITI, PENDIDIK, DAN
INSINYUR
Banyak ilmuwan, peneliti, pendidik, dan insinyur yang
sangat terampil menggunakan alat analisis spasial untuk
menganalisis data yang mereka kumpulkan, membuat
model penemuan mereka, atau melatih siswa.
Meskipun kami tidak menganggap diri kami sama dengan
mereka, kami sangat mengagumi orang-orang ini karena
mereka menciptakan pengetahuan dan meningkatkan
kehidupan kita dengan cara yang mendasar. Mereka
mungkin tahu banyak tentang matematika, biologi, kimia,
geologi, fisika, teknik, dan lain sebagainya, tetapi mereka
tidak terlatih dalam manajemen basis data, penggunaan
basis data relasional, atau GlS. Jika Anda adalah salah satu
dari orang-orang ini, kami berharap dapat memberikan
kerangka kerja yang cukup untuk membuat Anda cepat
tanggap tanpa terlalu banyak keributan.

Apa yang dimiliki PostgreSQL/PostGlS untuk Anda?

Ini memberi Anda kemampuan untuk berintegrasi


dengan paket statistik seperti R, dan Anda bahkan
dapat menulis fungsi prosedural basis data dalam PL/R
yang memanfaatkan kekuatan R.
PostgreSQL juga mendukung PL/Python dan
PL/JavaScript, yang memungkinkan Anda untuk
memanfaatkan pustaka Python dan JavaScript yang
terus berkembang untuk penelitian ilmiah langsung di
dalam database, di mana ia dapat bekerja lebih dekat
dengan data daripada di lingkungan Python biasa.
Meskipun banyak yang menganggap PostGlS sebagai
alat untuk sistem informasi geografis, dan hal ini
tersirat dari namanya, kami melihatnya sebagai alat
untuk analisis spasial. Perbedaannya adalah bahwa
geografi berfokus pada bumi dan sistem referensi yang
mengikat bumi, sedangkan analisis spasial berfokus
pada ruang dan penggunaan ruang. Sistem referensi
ruang dan koordinat tersebut mungkin spesifik untuk
bukit semut, atau peta pembangkit nuklir yang
lokasinya belum ditentukan, atau daerah otak yang
berbeda, atau dapat digunakan sebagai alat visualisasi
untuk memodelkan sesuatu yang pada dasarnya tidak
dapat dilihat, seperti dalam pemodelan proses.
Meskipun Anda mungkin berpikir bahwa bidang minat
Anda tidak tersentuh oleh analisis spasial, kami
menantang Anda untuk menggali lebih dalam.
Basis data adalah tempat penyimpanan alami untuk
data dalam jumlah besar dan memiliki banyak fungsi
dan konstruksi statistik/perhitungan bawaan untuk
menghasilkan laporan dan analisis yang berguna. Jika
Anda berurusan dengan data yang bersifat spasial atau
menggunakan ruang sebagai alat visualisasi, PostGlS
menyediakan lebih banyak fungsi untuk memperluas
analisis tersebut.
Sebagian besar data yang diperlukan untuk penelitian
ilmiah dapat dengan mudah dikumpulkan oleh mesin
(GPS, sistem alarm, perangkat penginderaan jarak
jauh) dan langsung disalurkan ke basis data melalui
umpan otomatis atau format impor standar. Bahkan,
alat pengumpul seperti ponsel pintar dan pesawat
tanpa awak semakin hari semakin murah dan lebih
mudah diakses oleh masyarakat umum, dan perangkat
keras untuk menyimpan data juga semakin murah.
Bagian-bagian data dapat didistribusikan dengan
mudah. Basis data relasional sangat ideal untuk
menciptakan apa yang kita sebut "dispenser data" atau
"datamart", yang memungkinkan peneliti lain untuk
dengan mudah mengambil bagian data yang mereka
perlukan untuk penelitian mereka atau menyediakan
data untuk diunduh dengan mudah oleh publik.

Profil-profil ini merupakan kelompok dasar pengguna basis


data spasial, tetapi mereka bukan satu-satunya. Jika Anda
pernah melihat dunia dan berpikir, bukankah lebih baik jika
saya dapat mengkorelasikan statistik kriminalitas dengan
lokasi di mana kita telah menanam pohon, atau di mana
tempat dan waktu yang terbaik untuk menanam tanaman
dengan mempertimbangkan model ketinggian dan fluktuasi
suhu suatu area, maka PostGlS mungkin merupakan alat
yang paling mudah dan paling hemat untuk Anda.

Bagaimana buku ini disusun:


sebuah peta jalan
Buku ini dibagi menjadi tiga bagian utama dan memiliki
beberapa lampiran pendukung.

BAGIAN 1: MEMPELAJARI POSTGIS


Bagian 1 mencakup konsep dasar database relasional
spasial dan khususnya PostGlS/PostgreSQL. Tujuan dari
bagian ini adalah untuk memperkenalkan Anda pada
konsep dan praktik basis data GlS standar industri. Pada
akhir bagian ini, Anda akan memiliki dasar yang kuat dalam
berbagai jenis geometri, geografi, raster, dan topologi, serta
masalah apa saja yang
yang ingin dipecahkan. Anda akan memiliki pemahaman
dasar tentang sistem referensi spasial dan opsi
penyimpanan basis data. Yang paling penting, Anda akan
memiliki kemampuan untuk memuat, meminta, dan melihat
data spasial dalam basis data PostgreSQL yang mendukung
PostGlS.

BAGIAN 2: MENERAPKAN POSTGIS


UNTUK BEKERJA
Bagian ini berfokus pada penggunaan PostGlS untuk
memecahkan masalah spasial dunia nyata dan
mengoptimalkan kecepatan. Anda akan belajar bagaimana
melakukan berbagai hal:

Cara melakukan analisis kedekatan menggunakan


geometri dan geografi
Cara menggunakan berbagai jenis operasi vektor untuk
mengoptimalkan data Anda
Cara melakukan pemrosesan raster tanpa batas
menggunakan data raster dan vektor
Cara membuat data vektor baru menggunakan
pemrosesan raster, aljabar peta, histogram, dan fungsi
statistik raster lainnya untuk menghitung statistik
tentang area yang diminati Cara membuat raster besar
dari raster yang lebih kecil menggunakan fungsi agregat
raster
Cara menggunakan geocoder PostGlS TlGER yang
dipaketkan untuk normalisasi alamat, geocoding, dan
geocoding terbalik
Cara menggunakan topologi untuk memastikan
konsistensi pengeditan Cara menyederhanakan seluruh
jaringan geometri dan tetap mempertahankan
keterhubungan dalam kumpulan data yang telah
disederhanakan
BAGIAN 3: MENGGUNAKAN POSTGIS
DENGAN PERANGKAT LAIN
Bagian 3 mencakup alat yang paling sering digunakan
dengan PostGlS untuk membangun aplikasi. Kita akan
membahas pgRouting, sebuah alat yang dapat Anda
gunakan dengan PostGlS secara langsung di dalam
database untuk membuat aplikasi perutean jaringan.
Sebagai tambahan, kita akan membahas bahasa-bahasa
prosedur tersimpan PostgreSQL: PL/Python, PL/R, dan PL/V8
(alias PL/JavaScript). Akhirnya, kita akan mengakhiri
dengan studi singkat tentang PostGlS dalam aplikasi web.
Kita akan membahas berbagai server pemetaan yang
digunakan dengan PostGlS serta OpenLayers dan
pemetaan Leaflet JavaScript APls. Kita juga akan melihat
bagaimana cara menggunakan PostGlS JSON dan fungsi
output ubin vektor untuk membangun peta web interaktif.

LAMPIRAN
Terdapat tiga lampiran.

Lampiran A menyediakan sumber daya tambahan untuk


mendapatkan bantuan tentang PostGlS dan alat bantu yang
dibahas dalam buku ini.

Lampiran B menunjukkan bagaimana cara untuk memulai


dan menjalankan PostgreSQL dan PostGlS.

Lampiran C adalah primer SQL yang menjelaskan konsep


JOIN , UNION , INTERSECT , EXCEPT , ekspresi tabel umum (CTE),
dan LATERAL. Ini membahas dasar-dasar penggabungan data
dengan fungsi agregat dan konstruk agregat, serta topik-
topik yang lebih lanjut tentang penggunaan fungsi jendela
dan bingkai.
Abou t kode
Konvensi tipografi berikut ini digunakan di seluruh buku:

Jenis huruf Courier digunakan di semua daftar kode.


Jenis huruf Courier digunakan di dalam teks untuk kata-
kata kode tertentu.
Sidebar dan catatan digunakan untuk menyoroti poin-
poin penting atau memperkenalkan terminologi baru.
Anotasi kode digunakan sebagai pengganti komentar
sebaris dalam kode. Anotasi ini menyoroti konsep atau
area penting dalam kode. Beberapa anotasi muncul
dengan poin-poin bernomor seperti ini, ❶ , yang
direferensikan kemudian dalam teks.

Contoh dan data untuk semua bab dalam buku ini dapat
diunduh melalui www.postgis.us/chapters_edition_3. Di
situs buku ini, Anda juga akan menemukan deskripsi setiap
bab dengan tautan terkait untuk setiap bab. Setiap
halaman bab memiliki tautan di mana Anda dapat
mengunduh data dan kode lengkap untuk bab tersebut.

Kode ini juga dapat diunduh dari situs web penerbit di


www.manning.com/obe3.

liveB ook forum diskusi


Pembelian PostGlS ln Action, Edisi Ketiga mencakup akses
gratis ke forum pribadi yang dijalankan oleh Manning
Publications di mana Anda dapat memberikan komentar
tentang buku ini, mengajukan pertanyaan teknis, dan
menerima bantuan dari para penulis dan
pengguna lain. Anda dapat mengakses dan berlangganan
ke forum di
https://livebook.manning.com/#!/book/obe3discussion.
Halaman ini menyediakan informasi tentang cara masuk ke
forum setelah Anda terdaftar, jenis bantuan yang tersedia,
dan aturan perilaku dalam forum.

Komitmen Manning kepada para pembaca kami adalah


untuk menyediakan tempat di mana dialog yang bermakna
di antara para pembaca individu dan antara pembaca dan
penulis dapat terjadi. Ini bukan komitmen untuk jumlah
partisipasi tertentu dari pihak penulis, yang kontribusinya
pada forum buku ini tetap bersifat sukarela (dan tidak
dibayar). Kami sarankan Anda untuk mencoba mengajukan
beberapa pertanyaan yang menantang kepada para
penulis, agar minat mereka tidak melenceng!

Forum diskusi dan arsip diskusi sebelumnya akan dapat


diakses dari situs web penerbit selama buku ini masih
dicetak. Terakhir, akan ada penambahan konten yang
ditambahkan ke situs web online penulis untuk buku ini,
yang terletak di www.postgis.us.

Anda juga dapat mengunjungi penulis di situs


pendamping PostgreSQL dan Open Source GlS:
www.postgresonline.com dan www.bostongis.com.

Abou t judul
Dengan menggabungkan perkenalan, ikhtisar, dan contoh-
contoh cara, buku-buku ln Action dirancang untuk
membantu belajar dan mengingat. Menurut penelitian di
ilmu kognitif, hal-hal yang diingat orang adalah hal-hal
yang mereka temukan selama eksplorasi yang dimotivasi
sendiri.

Meskipun tidak ada seorang pun di Manning yang


merupakan ilmuwan kognitif, kami yakin bahwa agar
pembelajaran menjadi permanen, pembelajaran harus
melewati tahap eksplorasi, bermain, dan, yang menarik,
menceritakan kembali apa yang dipelajari. Orang
memahami dan mengingat hal-hal baru, dengan kata lain,
mereka menguasainya, hanya setelah secara aktif
mengeksplorasinya. Manusia belajar melalui tindakan.
Bagian penting dari buku ln Action adalah buku ini
didorong oleh contoh. ln Action mendorong pembaca untuk
mencoba berbagai hal, bermain dengan kode baru, dan
mengeksplorasi ide-ide baru.

Ada alasan lain yang lebih biasa untuk judul buku ini:
Pembaca kami sibuk. Mereka menggunakan buku untuk
melakukan suatu pekerjaan atau memecahkan masalah.
Mereka membutuhkan buku yang memungkinkan mereka
untuk masuk dan keluar dengan mudah dan mempelajari
apa yang mereka inginkan saat mereka menginginkannya.
Mereka membutuhkan buku-buku yang membantu mereka
dalam beraksi. Buku-buku dalam seri ini dirancang untuk
pembaca seperti itu.

tentang t Penulis
Regina Obe dan Leo Hsu adalah konsultan database dan
penulis. Regina adalah anggota tim pengembangan inti
PostGlS dan Komite Pengarah Proyek.
tentang t ilustrasi sampul
Sosok di sampul depan PostGlS in Action, Edisi Ketiga
diberi judul "Seorang wanita dari Ubli, Kroasia." Ilustrasi
tersebut diambil dari reproduksi album kostum tradisional
Kroasia dari pertengahan abad ke-19 oleh Nikola Arsenovic,
yang diterbitkan oleh Museum Etnografi di Split, Kroasia,
pada tahun 2003. Ilustrasi-ilustrasi tersebut diperoleh dari
seorang pustakawan yang sangat membantu di Museum
Etnografi di Split, yang terletak di pusat kota abad
pertengahan, yaitu reruntuhan istana pensiunan Kaisar
Diocletianus dari sekitar tahun 304 Masehi. Buku ini
mencakup ilustrasi berwarna yang indah dari tokoh-tokoh
dari berbagai daerah di Kroasia, disertai dengan deskripsi
kostum dan kehidupan sehari-hari. Cara berpakaian dan
gaya hidup telah berubah selama 200 tahun terakhir, dan
keragaman berdasarkan wilayah, yang begitu kaya pada
saat itu, telah memudar. Sekarang sulit untuk membedakan
penduduk dari benua yang berbeda, apalagi dusun atau
kota yang berbeda yang hanya dipisahkan oleh beberapa
mil.

Mungkin kita telah menukar keragaman budaya dengan


kehidupan pribadi yang lebih bervariasi-tentu saja dengan
kehidupan teknologi yang lebih bervariasi dan serba cepat.
Manning merayakan daya cipta dan inisiatif bisnis komputer
dengan sampul buku yang didasarkan pada keragaman
kehidupan regional yang kaya dari dua abad yang lalu, yang
dihidupkan kembali dengan ilustrasi dari buku-buku lama
dan koleksi seperti ini.
Bagian 1. Pengantar ke PostGIS

Selamat datang di PostGlS in Action, Edisi Ketiga. PostGlS


adalah sebuah perluasan basis data spasial untuk sistem
manajemen basis data PostgreSQL. Buku ini akan
mengajarkan Anda dasar-dasar basis data spasial secara
umum, konsep-konsep utama dalam sistem informasi
geografis (GlS), dan secara lebih spesifik bagaimana
mengkonfigurasi, memuat, dan melakukan kueri pada basis
data yang diaktifkan oleh PostGlS. Anda akan belajar
bagaimana melakukan tindakan dengan satu baris kode
SQL yang Anda pikir hanya dapat dilakukan dengan sistem
GlS desktop. Dengan menggunakan SQL spasial, banyak
pekerjaan berat yang membutuhkan banyak langkah
manual di alat GlS desktop dapat ditulis dan diotomatisasi.

Buku ini dibagi menjadi tiga bagian dan empat lampiran.


Bagian 1 mencakup dasar-dasar basis data spasial, GlS, dan
bekerja dengan data spasial. Meskipun bagian 1 difokuskan
pada PostGlS, banyak konsep yang akan Anda pelajari di
bagian ini juga dapat diterapkan pada basis data relasional
spasial lainnya.

Bab 1 mencakup dasar-dasar database spasial dan apa yang


dapat Anda lakukan dengan database spasial yang
diaktifkan yang tidak dapat Anda lakukan dengan database
relasional standar. Bab ini juga memperkenalkan fitur-fitur
yang cukup unik pada PostGlS. Bab ini diakhiri dengan
sebuah contoh pemuatan data bujur/lintang restoran cepat
saji dan mengonversinya menjadi titik-titik geometris,
memuat data jalan dari file shapefile Esri,
dan melakukan ringkasan spasial dengan menggabungkan
dua set data ini.

Bab 2 membahas semua tipe spasial yang ditawarkan


PostGlS. Anda akan mempelajari cara membuatnya dengan
menggunakan berbagai fungsi dan mempelajari konsep-
konsep yang unik untuk setiap tipe spasial.

Bab 3 adalah pengenalan sistem referensi spasial, dan


kami akan menjelaskan konsep-konsep di baliknya,
mengapa sistem ini penting untuk bekerja dengan
geometri, raster, dan topologi, dan bagaimana cara bekerja
dengannya.

Bab 4 membahas cara memuat data spasial ke dalam


PostGlS menggunakan alat bantu yang sudah dipaketkan
serta alat bantu sumber terbuka pihak ketiga. Anda akan
mempelajari cara memuat data geometri dan geografi
menggunakan alat baris perintah shp2pgsql yang biasanya
dipaketkan dengan distribusi PostGlS, serta
pemuat/eksportir GUl shp2pgsql-gui yang dipaketkan
dengan beberapa distribusi desktop PostGlS. Anda juga
akan mempelajari cara memuat data raster menggunakan
alat bantu baris perintah raster2pgsql yang dipaketkan
dengan PostGlS dan cara mengimpor dan mengekspor data
raster dan vektor dalam berbagai format menggunakan
rangkaian GDAL/OGR.
Anda juga akan mempelajari cara melakukan kueri data
dari sumber eksternal tanpa memuatnya dengan
menggunakan pembungkus data asing (FDW) PostgreSQL.

Bab 5 membahas beberapa alat desktop open source yang


lebih umum untuk melihat dan menanyakan data PostGlS.

Bab 6 mulai membahas fungsi-fungsi inti yang lebih


sederhana yang digunakan dengan fungsi geometri dan
geografi. Semua fungsi ini mengambil objek geometri atau
geografi tunggal dan mengubahnya
atau mengambil representasi teks dari mereka dan
mengonversinya menjadi objek spasial PostGlS.

Bab 7 adalah pengenalan ke fungsi raster. Bab ini


mencakup sejumlah fungsi untuk membuat raster,
menginterogasi raster, dan menetapkan nilai piksel.

Bab 8 menyimpulkan bagian pertama ini dengan


memperkenalkan Anda pada hubungan spasial. Hubungan
spasial merupakan hal yang paling penting ketika bekerja
dengan kumpulan data. Pada bagian selanjutnya dari buku
ini, kita akan menggunakan konsep-konsep ini untuk
melakukan berbagai hal seperti penggabungan spasial.
1 Apa yang dimaksud dengan
basis data spasial?

Bab ini mencakup


Basis data spasial dalam pemecahan
masalah Tipe data spasial
Pemodelan dengan mempertimbangkan spasial
Mengapa Anda mungkin menggunakan
PostGlS/PostgreSQL untuk basis data spasial
Memuat dan menanyakan data spasial

Kebanyakan orang mengalami pengalaman pertama mereka


menggunakan aplikasi spasial ketika mereka melihat
pushpins yang ditempelkan pada titik-titik yang menarik pada
peta interaktif. Hal ini memberikan gambaran sekilas tentang
bidang sistem informasi geografis (SIG) yang sangat luas dan
beragam.

Kita akan memulai bab ini dengan model pushpin. Saat kami
mendemonstrasikan kegunaannya yang terbatas, kami akan
memperkenalkan kebutuhan akan basis data spasial-bukan
sembarang basis data, tetapi PostGlS. PostGlS adalah sebuah
ekstensi basis data spasial untuk sistem manajemen basis
data PostgreSQL. Kami akan memberikan pengenalan singkat
ke seluruh rangkaian PostGlS dan membangkitkan selera
Anda dengan contoh yang jauh melampaui apa yang dapat
Anda capai dengan pushpins.

Data dan kode yang digunakan dalam bab ini dapat


ditemukan di www.postgis.us/chapter_01_edition_3.
1.1 T berpikir secara spasial
Situs pemetaan populer seperti OpenStreetMap, Mapbox,
Google Maps, Bing Maps, dan MapQuest telah
memberdayakan orang-orang dari berbagai kalangan untuk
menjawab pertanyaan "Di mana letak sesuatu?" dengan
menampilkan bentuk titik-titik air mata pada peta interaktif
yang sangat detail. Kita tidak lagi terbatas pada deskripsi
tekstual tentang "di mana", seperti "Belok kanan di
supermarket, dan itu adalah rumah ketiga di sebelah kanan
dengan anjing yang kotor di depannya." Kita juga tidak lagi
dihadapkan pada masalah yang membuat frustasi karena
tidak dapat mengetahui lokasi kita saat ini di peta kertas.

Lebih dari sekadar mendapatkan petunjuk arah, organisasi


besar dan kecil telah menemukan bahwa pemetaan dapat
menjadi sumber daya yang hebat untuk menganalisis pola
dalam data. Dengan memetakan alamat para pecinta pizza,
sebuah jaringan pizza nasional dapat menilai di mana lokasi
pembukaan gerai berikutnya. Organisasi politik yang
merencanakan kampanye akar rumput dapat dengan mudah
melihat di peta di mana para pemilih yang belum
memutuskan atau tidak terdaftar berada dan menargetkan
rute perjalanan mereka. Meskipun model pushpin
menawarkan wawasan geografis y a n g belum pernah ada
sebelumnya, penalaran yang muncul darinya sepenuhnya
bersifat visual.

Dalam contoh pizza, jaringan restoran mungkin dapat melihat


konsentrasi pecinta pizza di sebuah kota dengan
menambahkan pushpins, tetapi bagaimana jika mereka perlu
membedakan pecinta pizza berdasarkan tingkat pendapatan?
Jika jaringan restoran memiliki penawaran gourmet, akan
menjadi ide yang bagus untuk menempatkan restoran baru di
tengah-tengah p a r a pecinta pizza yang berpenghasilan
menengah ke atas. Perencana pizza dapat menggunakan
peniti dengan warna yang berbeda pada peta interaktif untuk
menunjukkan berbagai tingkatan pendapatan, tetapi
penalaran visual heuristik sekarang akan jauh lebih rumit,
seperti yang ditunjukkan pada gambar 1.1. Perencana tidak
hanya perlu melihat konsentrasi pushpins, mereka juga harus
mengingat berbagai warna atau ikon dari pushpins tersebut.
Tambahkan variabel lain ke dalam peta, seperti rumah
tangga dengan orang dewasa yang tidak toleran terhadap
laktosa, dan masalahnya akan membebani pikiran kita yang
lemah. Basis data spasial dapat membantu.

Anda mungkin juga menyukai