Lewati ke isi
Profil penulisSeri Buku GIS Kehutanan dan Pertanian/ M4
Tampilkan bagian untuk:

BAB 3: Peta yang Bisa Dibuka dari Ponsel: Web Map dan Layanan

#Studi kasus: "Bisa dibuka tanpa QGIS?"

Kepala Seksi mau menunjukkan peta petak dan titik panas ke rapat. Peserta rapat tidak punya QGIS, sebagian hanya membawa ponsel. Analis Muda perlu mengubah peta di komputernya menjadi halaman yang cukup dibuka di browser. Di bab ini ia belajar caranya, dan tetap mencobanya di komputernya sendiri, bukan di server kantor.

#Konsep: web map dalam tiga kalimat

Web map adalah peta yang digambar di dalam browser memakai data yang dikirim lewat internet atau jaringan. Bayangkan restoran: data adalah dapur, layanan adalah pelayan yang menjawab pesanan, dan browser adalah meja tamu. Pesanan berbeda mendapat kiriman berbeda: ada yang meminta gambar jadi, ada yang meminta bahan mentah.

Ilustrasi 3.1: Rantai web map
Skema tiga tahap: data, layanan, peta di browser

#Empat jenis kiriman

Empat istilah baru. Pahami dulu apa yang dikirim, baru nama layanannya.

  • WMS (Web Map Service): mengirim gambar peta jadi. Ringan, tetapi atribut tidak bisa ditanya.
  • WFS (Web Feature Service): mengirim objek beserta atribut. Lebih berat, tetapi bisa difilter dan dianalisis.
  • Ubin (tile): mengirim kepingan gambar kecil bernomor. Sangat cepat untuk peta dasar.
  • GeoJSON: berkas teks berisi objek dan atribut. Cocok untuk data kecil yang ditaruh langsung bersama halaman web.

QGIS Server melayani WMS, WFS, WMTS, WCS, dan OGC API Features dari sebuah proyek QGIS (dokumentasi QGIS Server).

Ilustrasi 3.2: Apa yang dikirim tiap layanan
Skema WMS mengirim gambar, WFS mengirim objek dan atribut, ubin XYZ mengirim kepingan gambar

#Ubin dan nomornya

Peta dasar web dipotong menjadi ubin bernomor x, y, dan zoom. Tiap kali zoom naik satu tingkat, jumlah ubin menjadi empat kali lipat.

Ilustrasi 3.3: Piramida ubin
Skema ubin zoom 0 satu keping, zoom 1 empat keping, zoom 2 enam belas keping

Skrip skrip/buat_peta_web.py berisi fungsi ke_tile yang menghitung nomor ubin dari bujur dan lintang. Hasil ujinya: titik (0, 0) pada zoom 0 berada di ubin (0, 0), dan pada zoom 1 di ubin (1, 1). Sebagai contoh, bujur 106,85 dan lintang -6,2 pada zoom 10 jatuh di ubin (815, 529).

#Bagian A: QGIS

#Bagian A: Web map di QGIS

Berkas lengkap: skrip/buat_peta_web.py. Skrip hanya menulis berkas di komputer Anda.

  1. Jalankan skrip dengan Python milik QGIS: python-qgis.bat buat_peta_web.py.
  2. Skrip membaca Petak_KPH.gpkg dan Hotspot_Nasional.gpkg, mengubah koordinat ke EPSG:4326, lalu menulis dua berkas GeoJSON. Bagian pentingnya:
buat_peta_web.py
opsi = QgsVectorFileWriter.SaveVectorOptions()
opsi.driverName = "GeoJSON"
opsi.ct = QgsCoordinateTransform(lyr.crs(), QgsCoordinateReferenceSystem("EPSG:4326"),
                                 QgsCoordinateTransformContext())
opsi.layerOptions = ["COORDINATE_PRECISION=6", "RFC7946=YES"]
hasil = QgsVectorFileWriter.writeAsVectorFormatV3(lyr, berkas, QgsCoordinateTransformContext(), opsi)
  1. Skrip juga menulis index.html yang memakai pustaka Leaflet 1.9.4 dari alamat unpkg. Halaman memuat dua GeoJSON lalu menggambarnya. Petak diberi jendela info (popup) berisi ID, KPH, jenis, dan luas:
index.html
fetch('petak.geojson').then(r => r.json()).then(function (d) {
  var lap = L.geoJSON(d, {
    style: {color: '#2B6CB0', weight: 2, fillOpacity: 0.15},
    onEachFeature: function (f, l) {
      l.bindPopup('<b>' + f.properties.ID_Petak + '</b><br>' + f.properties.NAMA_KPH);
    }
  }).addTo(peta);
  peta.fitBounds(lap.getBounds());
});
  1. Layani folder keluaran dengan server bawaan Python di komputer Anda saja. Dari folder keluaran/peta_web, jalankan python -m http.server 8765 --bind 127.0.0.1. Alamat 127.0.0.1 hanya bisa diakses dari komputer Anda sendiri.
  2. Buka http://127.0.0.1:8765/index.html di browser. Anda melihat 16 petak dan 12 titik panas. Klik petak untuk membuka popup.
  3. Hentikan server dengan Ctrl+C.

Hasilnya: peta interaktif di browser, tanpa QGIS.

#Jalur lain di QGIS

Tiga jalur lain ini perlu Anda cocokkan. [CEK]

  • Plugin qgis2web: mengekspor proyek QGIS menjadi peta web Leaflet atau OpenLayers lengkap dengan gaya dan popup. Hasilnya berkas statis (HTML, JavaScript, CSS) yang bisa dibuka di browser. Pasang lewat Plugins ► Manage and Install Plugins.
  • QGIS Server: melayani proyek QGIS sebagai WMS, WFS, dan lainnya. Pengaturan layanan ada di Project ► Properties ► QGIS Server, dengan opsi mengaktifkan kemampuan layanan (Service Capabilities). Pemanggilan layanan memakai parameter MAP yang menunjuk berkas proyek.
  • Memakai layanan orang lain: lewat Layer ► Data Source Manager (Ctrl+L), tab WMS/WMTS atau WFS, lalu isi alamat layanan. Alamat layanan WMS biasanya diberi REQUEST=GetCapabilities untuk melihat daftar layer yang tersedia.

#Bagian B: ArcGIS Pro

#Bagian B: ArcGIS Pro

ArcGIS Pro menerbitkan lewat portal, yaitu ArcGIS Online atau ArcGIS Enterprise. Alurnya (dokumentasi Esri): pada tab Share, grup Share As, buka panah Web Layer, lalu pilih Publish Web Layer. Web feature layer mendukung kueri, tampilan, dan penyuntingan. [CEK: butuh akun portal]

  1. Masuk (sign in) ke portal organisasi Anda. [CEK]
  2. Siapkan layer petak di peta, lalu pilih Share ► Web Layer ► Publish Web Layer. [CEK]
  3. Isi nama, ringkasan, dan siapa yang boleh melihat. Pilih pembagian terbatas bila datanya belum untuk umum. [CEK]
  4. Periksa halaman item di portal setelah selesai. [CEK]

Hasilnya, layer bisa dipakai di web map dan dasbor (Bab 4). Pro tidak memerlukan Anda menjalankan server sendiri bila memakai ArcGIS Online.

#Bagian C: ArcMap 10.8

#Bagian C: ArcMap 10.8

ArcMap menerbitkan peta sebagai layanan peta ke ArcGIS Server. Menurut dokumentasi Esri: buka dokumen peta, pilih File ► Share As ► Service, lalu Publish a service, dan pilih koneksi server. [CEK: butuh ArcGIS Server]

  1. Simpan dulu dokumen peta (.mxd). [CEK]
  2. Pilih File ► Share As ► Service, lalu Publish a service. [CEK]
  3. Pilih koneksi GIS Server dari daftar, atau tambah koneksi baru. [CEK]
  4. Ikuti wizard sampai layanan terbit. [CEK]

Tidak ada padanan langsung untuk "ekspor ke peta statis Leaflet" seperti qgis2web. [CEK]

#Cek paham

  1. Apa beda WMS dan WFS?
  2. Mengapa data UTM harus diubah sebelum menjadi GeoJSON?
  3. Mengapa halaman latihan dilayani lewat 127.0.0.1?

Jawaban:

  1. WMS mengirim gambar peta jadi. WFS mengirim objek beserta atributnya.
  2. GeoJSON standar memakai lintang-bujur WGS 84 (EPSG:4326), bukan UTM.
  3. Alamat itu hanya bisa diakses dari komputer Anda. Aman untuk latihan, dan tidak membuka data ke orang lain.

#Kesalahan umum

  • Peta kosong atau titik jatuh di Samudra. Koordinat tidak diubah ke EPSG:4326, atau urutan bujur-lintang tertukar. Ubah dulu CRS-nya.
  • Halaman tidak memuat data. Dibuka lewat file://. Layani lewat server lokal.
  • Halaman kosong tanpa internet. Pustaka Leaflet diunduh dari internet. Simpan Leaflet di folder sendiri bila perlu bekerja luring. [CEK]
  • Data sensitif ikut terbit. GeoJSON memuat semua kolom. Hapus kolom yang tidak untuk umum sebelum mengekspor.
  • Lupa atribusi. Peta dasar dari pihak lain punya syarat pencantuman sumber. Baca syarat sebelum memakainya.

#Ringkasan dan latihan

Ringkasan: Web map adalah rantai data, layanan, dan browser. Pilih kiriman sesuai kebutuhan: gambar (WMS), objek (WFS), kepingan (ubin), atau berkas teks (GeoJSON). Ubah CRS ke lintang-bujur sebelum ke web. Latihlah di komputer sendiri.

Latihan: Ubah buat_peta_web.py supaya titik panas diberi popup berisi ID_Titik. (Petunjuk: tambah onEachFeature pada layer titik. Nilai ID seperti HS-001 ada di kolom ID_Titik.)

#Tabel perbandingan: menerbitkan peta ke web

HalQGISArcGIS ProArcMap 10.8
Peta web statisSkrip sendiri atau plugin qgis2webTidak ada padanan setara [CEK]Tidak ada padanan setara [CEK]
Layanan petaQGIS ServerWeb layer ke portalLayanan peta di ArcGIS Server
Alur menuProject ► Properties ► QGIS ServerShare ► Web Layer ► Publish Web LayerFile ► Share As ► Service
KebutuhanServer sendiriAkun portalArcGIS Server