Diartikel ini kita akan belajar membuat peta lokasi yang menggunakan Google Maps API. Lokasi tersebut akan ditandai oleh Marker dan data Marker tersebut akan diambil dari MySQL sehingga data peta nanti bersifat dinamis. Sebelum kita mulai, anda harus mempunyai Google Maps API Key (untuk web) terlebih dahulu. API Key tersebut anda bisa mendapatkannya di https://developers.google.com/maps/web/ , cukup dengan klik tombol Get A Key.
Pendahuluan
Di Map yang akan kita buat ini, kita akan menampilkan (secara default) peta Indonesia dengan beberapa lokasi yang ditandai oleh markers, kemudian jika markers tersebut di klik, maka menampilkan informasi (InfoWindow) berupa alamat lengkap.
Data markers yang disimpan pada tabel di MySQL berformat DD (decimal degree) ,perlu diperhatikan jika anda mempunyai data lokasi berformat DMS (degrees, minutes, seconds) dan ingin menampilkannya di tutorial ini, maka anda harus melakukan konversi terlebih dahulu ke format DD .
Persiapan Data
Buat dahulu Database baru bernama map dan tabel bernama lokasi.Ditabel lokasi kita buat 4 kolom yaitu lokasi_id, lat, long dan alamat.
lokasi (table)
Data table lokasi
Jika anda ingin menggunakan sample data (berserta script table) yang saya gunakan,dapat didownload di Google Drive saya.
Buat File Koneksi
buat file bernama koneksi.php, ketik kode berikut:
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'map');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'map');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
Buat File Map
buat lagi file php bernama map.php, karena script terlalu cukup panjang, anda bisa mendownload nya di Google Drive saya (lagi).
note : pastikan file koneksi.php dan map.php berada dalam satu folder yang sama di c:\xampp\htdocs\, lokasi folder htdocs tergantung dimana anda saat menginstal xampp :)
Penjelasan Kode
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY_ANDA" async defer></script>
string API_KEY_ANDA diisi dengan API key yang anda punya.
<script type="text/javascript">
var markers = [
<?php
$sql = mysqli_query($db, "SELECT * FROM lokasi");
while(($data = mysqli_fetch_assoc($sql))) {
?>
{
"lat": '<?php echo $data['lat']; ?>',
"long": '<?php echo $data['long']; ?>',
"alamat": '<?php echo $data['alamat']; ?>'
},
<?php
}
?>
];
</script>
<script type="text/javascript">
var markers = [
<?php
$sql = mysqli_query($db, "SELECT * FROM lokasi");
while(($data = mysqli_fetch_assoc($sql))) {
?>
{
"lat": '<?php echo $data['lat']; ?>',
"long": '<?php echo $data['long']; ?>',
"alamat": '<?php echo $data['alamat']; ?>'
},
<?php
}
?>
];
</script>
membuat array di javascript bernama markers, isi array (lat,long dan alamat) diambil dari tabel lokasi dengan looping menggunakan script PHP. Isi dari markers akan terlihat seperti berikut :
center: new google.maps.LatLng(-2.2459632,116.2409634),
atur posisi map berada di latlong Indonesia.
var infoWindow = new google.maps.InfoWindow();var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
inisiasi infowindow dan google map, google map nanti berada dielement div dengan id dvMap.
for (i = 0; i < markers.length; i++) {var data = markers[i];var latnya = data.lat;var longnya = data.long;
var myLatlng = new google.maps.LatLng(latnya, longnya);
var marker = new google.maps.Marker({position: myLatlng,map: map,title: data.alamat});(function (marker, data) {google.maps.event.addListener(marker, "click", function (e) {infoWindow.setContent('<b>Lokasi</b> :' + data.alamat + '<br>');infoWindow.open(map, marker);});})(marker, data);}
lakukan looping sebanyak data pada array markers, disini juga dilakukan penambahan marker sesuai koordinat latlong dan menambahkan event addlistener click pada marker agar menampilkan infowindow ketika marker di klik oleh user :).
Hasilnya:
Klik salah satu marker, maka akan muncul InfoWindow :
Semoga Bermanfaat
Artikel ini dibuat oleh Yudha Tri Putra sebagai penulis artikel, diperbolehkan menyalin artikel ini secara utuh tanpa mengubah atau menambah isi artikel.
Komentar ini telah dihapus oleh pengarang.
BalasHapuskok tidak bisa ya bootsrap nya mas
BalasHapuskok tidak bisa ya bootsrap nya mas
BalasHapusga pakai bootstrap kok
HapusEorror gan, tolong gan
BalasHapus"Sorry! Something went wrong.
This page didn't load Google Maps correctly. See the JavaScript console for technical details"
kalau pakai google chrome,masuk ke developer tools (tekan CTRL + SHIFT+ I) atau menu more tools -> developer tools. Nanti terlihat detil errornya
HapusAPI nya belum terdaftar di google api
Hapusmaaf mas google map saya berhasil muncul, tetapi kok tidak muncul markernya ya mas di mapnya???
BalasHapusmakasih mas atas bantuannya...
dicek dahulu di array markers ada data nya atau tidak, kalau ada, cek apakah data latlong nya benar..semoga membantu ^^
HapusKomentar ini telah dihapus oleh pengarang.
BalasHapuskalo membuat direction dari marker yg kita klik dari infowindow sprti totorial diatas gmna mas?
BalasHapusmas. klo kita mau search lokasi di maps yg dh kita msk in ke web kita, trs pngn data itu insert ke database gmn ya?
BalasHapusAselole
BalasHapusthanks infonya min
BalasHapusrental mobil
Komentar ini telah dihapus oleh pengarang.
BalasHapusgimana ni mas markernya gak keluar, aku bingung bantuannya mas..
BalasHapusTrace errornya dulu dimana..error message nya apa
HapusTidak ada error massagenya mas... Cuman kendala sekarang Marker tidak muncul?
BalasHapusDibagian mana kodingan yg salah tu mas?
kalau pakai google chrome,masuk ke developer tools (tekan CTRL + SHIFT+ I) atau menu more tools -> developer tools. Nanti terlihat detil errornya
Hapusbisa jadi latlong salah format, atau datanya ga keload oleh php, atau error dari sisi javascriptnya..harus ketemu dulu root causenya :)
Mau tanya gan, saya load kok emang tampil sih dan bener ada 3 markernya, cuma tampilnya sebentar aja gak sampai 5 detik kemudian muncul ini This page didn't load Google Maps correctly. See the JavaScript console for technical details.
BalasHapusMohon bantuannya gan thanks
liat di error consolenya ada error apa ya, baru bisa ditelusuri penyebabnya
HapusTerima kasih sangat membantu.
BalasHapusKalau berkenan, kunjungi website kampus saya di : http://www.atmaluhur.ac.id
dan website pribadi saya di : https://ferafe.mahasiswa.atmaluhur.ac.id