Sabtu, 19 November 2016

[PHP+MySQL] Membuat Peta Lokasi dengan Google Maps API


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);
?>

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>

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.

22 komentar:

  1. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  2. kok tidak bisa ya bootsrap nya mas

    BalasHapus
  3. kok tidak bisa ya bootsrap nya mas

    BalasHapus
  4. Eorror gan, tolong gan
    "Sorry! Something went wrong.
    This page didn't load Google Maps correctly. See the JavaScript console for technical details"

    BalasHapus
    Balasan
    1. kalau pakai google chrome,masuk ke developer tools (tekan CTRL + SHIFT+ I) atau menu more tools -> developer tools. Nanti terlihat detil errornya

      Hapus
    2. API nya belum terdaftar di google api

      Hapus
  5. maaf mas google map saya berhasil muncul, tetapi kok tidak muncul markernya ya mas di mapnya???
    makasih mas atas bantuannya...

    BalasHapus
    Balasan
    1. dicek dahulu di array markers ada data nya atau tidak, kalau ada, cek apakah data latlong nya benar..semoga membantu ^^

      Hapus
  6. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  7. kalo membuat direction dari marker yg kita klik dari infowindow sprti totorial diatas gmna mas?

    BalasHapus
  8. mas. klo kita mau search lokasi di maps yg dh kita msk in ke web kita, trs pngn data itu insert ke database gmn ya?

    BalasHapus
  9. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  10. gimana ni mas markernya gak keluar, aku bingung bantuannya mas..

    BalasHapus
    Balasan
    1. Trace errornya dulu dimana..error message nya apa

      Hapus
  11. Tidak ada error massagenya mas... Cuman kendala sekarang Marker tidak muncul?
    Dibagian mana kodingan yg salah tu mas?

    BalasHapus
    Balasan
    1. kalau pakai google chrome,masuk ke developer tools (tekan CTRL + SHIFT+ I) atau menu more tools -> developer tools. Nanti terlihat detil errornya

      bisa jadi latlong salah format, atau datanya ga keload oleh php, atau error dari sisi javascriptnya..harus ketemu dulu root causenya :)

      Hapus
  12. 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.
    Mohon bantuannya gan thanks

    BalasHapus
    Balasan
    1. liat di error consolenya ada error apa ya, baru bisa ditelusuri penyebabnya

      Hapus
  13. Terima kasih sangat membantu.


    Kalau berkenan, kunjungi website kampus saya di : http://www.atmaluhur.ac.id
    dan website pribadi saya di : https://ferafe.mahasiswa.atmaluhur.ac.id

    BalasHapus

(C) 2018. Diberdayakan oleh Blogger.

Categories

Followers