WEBGIS Menggunakan Google Map
WEBGIS Menggunakan Google Map
WEBGIS Menggunakan Google Map
inShare
NOTE : POSTINGAN INI SAYA ULANG KARENA ADA BEBERAPA FEEDBACK MENGENAI PETA
YANG TIDAK BISA TAMPIL (Silahkan di koreksi untuk Key API Script yang ada pada Index.html
script : "https://maps.googleapis.com/maps/api/js?key=GOOGLE API KEY
ANDA&callback=initMap" )
Bagi hampir semua orang, resume adalah sesuatu yang sangat penting, baik itu bagi
pencari kerja, project ataupun professional. Sebagai seorang yang berjiwa Peta, maka
harusnya resume atau portfolio kita bisa diimplementasikan kedalam peta, terutama
peta digital berbasis WEB, seperti dalam portfolio saya
dalam http://bayuyanuargi.000webhostapp.com. Dalam kesempatan kali ini saya akan
membahas secara mendasar bagaimana menampilkan pengalaman project kedalam
bentuk spasial menggunakan Google Map API's.
Konsep utama dalam tutorial kali ini adalah menampilkan data atau daftar project yang
pernah kita kerjakan dalam bentuk spasial berbasis webgis dengan menampilkan
informasi detil dalam bentuk infowindow seperti gambar di bawah ini.
Baik kita mulai dari pembuatan database untuk project kita ini menggunakan MySQL
database. Sebenarnya kita bisa saja membuat KML dengan menggunakan ArcGIS tapi
database tersebut bersifat statis, artinya jika akan melakukan update kita harus
mengulang langkah dari awal.Dengan menggunakan MySQL maka kita bisa melakukan
update, seperti penambahan data project, delete ataupun update dengan webbased
setiap saat dan dimana saja.
Untuk membuat database MySQL, kita bisa melakukan secara offline di komputer kita
menggunakan XAMPP, atau kita bisa menggunakan fasilitas webhosting baik yang
berbayar maupun yang gratis seperti 000webhostapp.com seperti yang penulis
gunakan.
Pada kesempatan ini kita akan menggunakan XAMPP untuk membuat database lokal di
komputer kita, untuk itu kita perlu mendownload XAMPP silahkan download disini Jika
sudah download dan install silahkan running XAMPP control panel dan start
APACHE dan MYSQL seperti gambar di bawah ini
Setelah berhasil di running dan distart, silahkan buka browser anda dan
ketik http://localhost/phpmyadmin/ sehingga akan muncul seperti gambar di bawah ini
Baik, setelah itu kita bergeser sedikit ke Data kita, untuk lebih mudahnya kita list dulu
project yang pernah kita kerjakan menggunakan excel, untuk latihan ini, silahkan
gunakan excel saya sebagai contoh Download di SINI . Dalam excel tersebut bisa
dilihat banyak informasi mengenai project kita, mulai dari nama project hingga
Koordinat.
Jika anda lihat pada kolom photo, disitu saya menggunakan dropbox sebagai fasilitas
penyimpanan foto. Sebenarnya kita bisa menyimpan foto dihosting 000webhostapp,
tapi itu akan mengurangi jatah space kita yang sedikit karena gratisan. Anda bebas
menggunakan webhosting anda atau mau menggunakan dropbox seperti saya.
Jika anda menggunakan dropbox, maka hyperlink yang akan digunakan harus sedikit di
modifikasi, saat kita share tautan / link menggunakan dropbox, maka dropbox akan
memberi kita link seperti
ini https://www.dropbox.com/s/r54tyig422wcz84/Asterbintan.JPG?dl=0 . Link tersebut
adalah link untuk mendownload bukan link untuk menampilkan, sedangkan yang kita
butuhkan adalah link untuk menampilkan foto bukan mendownload foto.
Lalu setelah database Project sudah dibuat, kemudian kita akan mengimport file excel
yang sudah kita buat tadi kedalam database Project kita yang baru, silahkan ikuti
langkah di bawah ini :
1. Sebelum kita import file project list yang kita miliki, kita perlu menconvert
file excel kita kedalam bentuk CSV, silahkan convert dulu
2. Setelah berhasil terconvert,pilih database Project (klik)
3. Klik pada IMPORT
4. Klik "Pilih File" untuk memilih file yang akan di import (CSV)
5. Scroll ke bawah Check "The first line contains the table column name......."
6. Check "Update data when duplicate...................."
7. Klik GO / KIRIM
Hasil dari import tersebut adalah sekarang kita telah mempunya database project kita
dalam MySQL. Anda dapat melakukan untuk semua jenis database. Hasilnya seperti
gambar di bawah ini, kita bisa melakukan add data, update dan delete data
menggunakan MySQL dan realtime langsung update kedalam webgis kita
Baik setelah kita selesai melakukan pembuatan database menggunakan MySQL, kita
akan melakukan pemrograman PHP menggunakan PHP editor, atau notepad++ lalu
kita upload ke webhost kita. Oya sebelumnya kita harus memperoleh credential key
untuk GOOGLE API's Silahkan ikuti langkah-langkahnya lalu "enabled" kan key untuk
Setelah semua siap, selanjutnya kita akan melakukan coding untuk membuat webgis
portfolio kita. Silahkan gunakan PHP atau HTML Editor untuk melakukan coding
tersebut, yang paling gampang silahkan gunakan notepad++.
Untuk membuat webgis berdasarkan database yang telah kita buat minimal kita
memerlukan tiga file :
dbexport.php adalah file yang digunakan untuk melakukan convert data mysql menjadi
XML yang kemudian akan dibaca oleh index.html sebagai titik-titik data dan ditampilkan
dalam webgis kita.Secara umum dbexport ini tidak menghasilkan file tapi dia sebagai
tool pembacaan oleh file HTML kita. Silahkan copy paste script di bawah ini.
<?php
require("php_dbinfo.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
header("Content-type: text/xml");
?>
Mari kita bahas mengenai script di atas sedikit saja, kita mulai dari baris kedua kita bisa
lihat script : require("php_dbinfo.php") artinya untuk menjalankan applikasi ini dia
akan melihat mengakses file "php_dbinfo.php" yang dalam hal ini akan digunakan
sebagai pintu masuk kedalam database MySQL kita. Jika anda menggunakan nama
lain selain "php_dbinfo.php" maka silahkan ganti namanya sesuai dengan file name
yang anda gunakan.
Sekarang pada baris 26 dan seterusnya kita harus menentukan nama table yang akan
kita gunakan dalam operasi ini, dalam contoh saya menggunakan nama "table_p",
nama table ini dapat anda temukan pada mysql anda seperti pada gambar di bawah ini.
Silahkan ubah nama table sesuai dengan table yang anda miliki pada baris ke 26 dan
seterusnya.
Setelah converter dibuat, sekarang waktunya kita membuat webgis dengan
nama index.html. Sebenarnya namanya tidak harus index.html apalagi jika webgis ini
bukanlah main page dari website kita. Index.html adalah file yang akan dibuka pertama
kali jika kita mengetikkan alamat website, contohnya jika kita membuka
http://bayuyanuargi.000webhostapp.com maka kita sebenarnya sedang membuka file
index.html yang ada. Jadi itu default.
Jadi jika halaman utama dari website kita bukanlah webgis yang sedang kita buat,
maka kita bebas menggunakan nama yang lain, misalnya map.html, peta.html dsb, dan
kita buatkan link di halaman utama website kita untuk membuka file tersebut.
Baik tidak usah basa-basi, kita langsung saja membuat webgis kita yang dalam hal ini
kita namakan index.html .
<script>
var customLabel = {
Province: {
label: 'P'
},
Regency: {
label: 'R'
},
National: {
label: 'N'
},
District: {
label: 'D'
}
};
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(-1.3327011, 114.5706969),
zoom: 5
});
var infoWindow = new google.maps.InfoWindow;
var infowincontent =
document.createElement('div');
var x = document.createElement('IMG');
x.src = marker_image
x.setAttribute('width', '300');
x.setAttribute('width', '200');
document.body.appendChild(x);
infowincontent.appendChild(x);
infowincontent.appendChild(document.createElement('br'));
map: map,
position: point,
label: icon.label
});
marker.addListener('click', function() {
infoWindow.setContent(infowincontent);
infoWindow.open(map, marker);
});
});
});
}
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
function doNothing() {}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=GOOGLE API
KEY&callback=initMap">
</script>
</body>
</html>
Silahkan copy paste script di atas, jika sudah mari kita bahas beberapa hal penting
dalam script tersebut.
Yang pertama pada baris 25 - 38 anda akan melihat script yang dibuka dengan "var
customLabel = {" dimana script ini akan membuat label pada peta kita berdasarkan kategori yang
ada dalam kolom scope. Anda bisa mengganti label sesuai keinginan anda dengan mengganti nama
labelnya sesuai dengan attribute yang ada dalam kolom yang anda inginkan.
Kebetulan attribute dalam kolom scope terdiri dari "Province, Regency, National, dan
District" . Untuk menentukan nama kolom silahkan dilihat pada baris 101 dengan script
"var icon = customLabel[Scope] || {};" [Scope] adalah judul / nama kolom, jika anda
ingin mengganti label yang ditampilkan, silahkan ganti nama kolom yang diinginkan.
Kita lanjutkan pada baris 42 - 43 yang berisi script sebagai berikut ini "center: new
google.maps.LatLng(-1.3327011, 114.5706969), zoom: 5 ". Script tersebut adalah untuk
menentukan koordinat center dari peta yang akan dibuka termasuk juga leve zooming nya, semakin kecil
angka zoom nya semakin tinggi sudut viewnya.
Selanjutnya pada baris ke 64 - 98 adalah informasi apa saja yang ingin ditampilkan saat
info window tampil.
Dan selesai, silahkan coba, jika ada kesulitan silahkan comment di bawah ini. atau
email saya di bayu.yanuargi@outlook.com.