![]() |
Gambar 1 - Proses Alur Data |
![]() |
Gambar 2 - Koneksi ke database di PostgreSQL |
Setelah berhasil maka akan muncul daftar layer yang ada di dalam database tersebut, seperti berikut :
![]() |
Gambar 3 - Daftar Layer dari database |
Berikutnya lakukan publikasi pada layer tersebut, dengan mengklik pilihan Publish. Lakukan settingan untuk publikasi kurang lebih seperti gambar berikut :
![]() |
Gambar 4 - Settingan untuk publikasi Layer di GeoServer |
Untuk penjelasan setiap form isian dapat di baca dan di pahami di artikel KONEKSI POSTGRESQL KE GEOSERVER.
![]() |
Gambar 5 - Layer Preview |
![]() |
Gambar 6 - Layer Bali di dalam tampilan OpenLayer |
![]() |
Gambar 7 - GeoJSON Layer Bali |
css, js, img, layer, leaflet
![]() |
Gambar 8 - Susunan folder di dalam folder "geos" |
Sekarang jalankan program XAMPP kemudian run pada server Apache. Buka text editor bisa pakai notepad, notepad ++, sublime, ataupun text editor lainnya.
<?php $url=file_get_contents("http://localhost:3615/geoserver/geos/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=geos:BALI_ADM&outputFormat=application%2Fjson"); # url yang ada di dalam ("") itu link address dari halaman GeoJSON.. jangan luap hapus bagian &maxFeatures=50 echo($url); ?>
save file tesebut di dalam folder layer di dalam folder geos. Tahap selanjutnya membuat halaman utama WebGIS. Buat file index.php kemudian isi dengan strukut dasar html seperti berikut :
<!DOCTYPE html> <html> <head> <!-- untuk meta description, keywords, dan author bisa gantu dan di sesuaikan tapi yang meta charset sama viewport jangan di ganti --> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name='description' content='WebGIS geosis.id menyajikan berbagai konten spasial ke dalam bentuk Website'/> <meta name='keywords' content='WebGIS, WebGIS geos, WebGIS Indoensia'/> <meta name='Author' content='Egi Septiana'/> <title>WebGIS Info-Geospasial</title> <!-- title bisa di sesuaikan dengan nama judul WebGIS yang di inginkan --> </head> <body> <!-- bagian ini akan di isi konten utama --> </body> </html>
Simpan file index.php tersebut di bagian luar di folder geos. Selanjutnya tambahakan file plugin leaflet JavaScript berikut di folder leaflet.
<link rel="stylesheet" href="leaflet/leaflet.css" /> <!-- memanggil css di folder leaflet --> <script src="leaflet/leaflet.js"></script> <!-- memanggil leaflet.js di folder leaflet --> <script src="js/jquery-3.1.0.min.js"></script> <!-- memanggil jquery di folder js --> <script src="leaflet/leaflet-providers-master/leaflet-providers.js"></script> <!-- memanggil leaflet-providers.js di folder leaflet provider -->
<div id="map"> <!-- ini id="map" bisa di ganti dengan nama yang di inginkan --> <script> // MENGATUR TITIK KOORDINAT TITIK TENGAN & LEVEL ZOOM PADA BASEMAP var map = L.map('map').setView([-8.4521135,115.0599022], 10); // PILIHAN BASEMAP YANG AKAN DITAMPILKAN var baseLayers = { 'Esri.WorldTopoMap': L.tileLayer.provider('Esri.WorldTopoMap').addTo(map), 'Esri WorldImagery': L.tileLayer.provider('Esri.WorldImagery') }; // MENAMPILKAN TOOLS UNTUK MEMILIH BASEMAP L.control.layers(baseLayers,{}).addTo(map); // MENAMPILKAN SKALA L.control.scale({imperial: false}).addTo(map); // ------------------- VECTOR ---------------------------- // REQUEST BALI A DMINISTRASI $.ajax({ // ini perintah syntax ajax untuk memanggil vektor type: 'POST', url: 'layer/request_bali.php', // INI memanggil link request_bali yang sebelumnya telah di buat dataType: "json", success: function(response){ var data=response; L.geoJson(data,{ style: function(feature){ var Style1 return { color: "#cc3f39", weight: 1, opacity: 1 }; // ini adalah style yang akan digunakan }, // MENAMPILKAN POPUP DENGAN ISI BERDASARKAN ATRIBUT KAB_KOTA onEachFeature: function( feature, layer ){ layer.bindPopup( "<center>" + feature.properties.kab_kot + "</center>") } }).addTo(map); // di akhir selalu di akhiri dengan perintah ini karena objek akan ditambahkan ke map } }); </script> </div>
html { height: 100% } body { height: 100%; margin: 0; padding: 0; } #map { height:100%; }
Terakhir tambahkan link pemanggil file style.css tersebut ke file index.php, tempatkan di bawah syntax pemanggil CSS leaflet.
<link rel="stylesheet" href="css/style.css" /> <!-- memanggil css style -->
Setelah semua tahapan di atas diikuti, maka berikut hasil akhir setelah di gabungkan semuanya :
<!DOCTYPE html> <html> <head> <!-- untuk meta description, keywords, dan author bisa gantu dan di sesuaikan tapi yang meta charset sama viewport jangan di ganti --> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name='description' content='WebGIS geosis.id menyajikan berbagai konten spasial ke dalam bentuk Website'/> <meta name='keywords' content='WebGIS, WebGIS geos, WebGIS Indoensia'/> <meta name='Author' content='Egi Septiana'/> <title>WebGIS Info-Geospasial</title> <!-- title bisa di sesuaikan dengan nama judul WebGIS yang di inginkan --> <link rel="stylesheet" href="leaflet/leaflet.css" /> <!-- memanggil css di folder leaflet --> <link rel="stylesheet" href="css/style.css" /> <!-- memanggil css style --> <script src="leaflet/leaflet.js"></script> <!-- memanggil leaflet.js di folder leaflet --> <script src="js/jquery-3.1.0.min.js"></script> <!-- memanggil jquery di folder js --> <script src="leaflet/leaflet-providers-master/leaflet-providers.js"></script> <!-- memanggil leaflet-providers.js di folder leaflet provider --> </head> <body> <div id="map"> <!-- ini id="map" bisa di ganti dengan nama yang di inginkan --> <script> // MENGATUR TITIK KOORDINAT TITIK TENGAN & LEVEL ZOOM PADA BASEMAP var map = L.map('map').setView([-8.4521135,115.0599022], 10); // PILIHAN BASEMAP YANG AKAN DITAMPILKAN var baseLayers = { 'Esri.WorldTopoMap': L.tileLayer.provider('Esri.WorldTopoMap').addTo(map), 'Esri WorldImagery': L.tileLayer.provider('Esri.WorldImagery') }; // MENAMPILKAN TOOLS UNTUK MEMILIH BASEMAP L.control.layers(baseLayers,{}).addTo(map); // MENAMPILKAN SKALA L.control.scale({imperial: false}).addTo(map); // ------------------- VECTOR ---------------------------- // REQUEST BALI ADMINISTRASI $.ajax({ // ini perintah syntax ajax untuk memanggil vektor type: 'POST', url: 'layer/request_bali.php', // INI memanggil link request_bali yang sebelumnya telah di buat dataType: "json", success: function(response){ var data=response; L.geoJson(data,{ style: function(feature){ var Style1 return { color: "#cc3f39", weight: 1, opacity: 1 }; // ini adalah style yang akan digunakan }, // MENAMPILKAN POPUP DENGAN ISI BERDASARKAN ATRIBUT KAB_KOTA onEachFeature: function( feature, layer ){ layer.bindPopup( "<center>" + feature.properties.kab_kot + "</center>") } }).addTo(map); // di akhir selalu di akhiri dengan perintah ini karena objek akan ditambahkan ke map } }); </script> </div> </body> </html> </body> </html>
Save dan coba jalankan di browser dengan mengetik link berikut di link address pada browser :
localhost/webgis/geos/ atau localhost/webgis/geos/index.php
Jika tahapan di atas diikuti dengan benar, maka hasilnya akan seperti gambar berikut :
![]() |
Gambar 9 - Tampilan WebGIS dengan basemap 1 |
![]() |
Gambar 10 - Tampilan WebGIS dengan basemap 2 |
Demikian tutorial cara Membuat WebGIS dengan Leaflet JavaScript part 1. Di part selanjutnya kita akan mengkategorikan vektor yang tertampil berdasarkan kabupaten, serta akan ditambahkan beberapa vektor lainnya.
Artikel Terkait :