BLANTERORBITv102

    Cara Membuat InfoWindow Dengan InfoBox di Google Maps

    Jumat, 06 Mei 2016
    Infobox adalah alternatif lain dari info window yang dapat di kostum, infobox di buat menggunakan gambar sebagai background dan kemudian di timpa dengan tag html atau baris html sebagai konten. Dengan InfoBox kita dapat mendesain tampilan info window dengan menarik. InfoBox sendiri merupkan library dari google maps v3.
    Membuat InfoWindow Dengan InfoBox di Google Maps
    Gambar 1
    Lalu bagaimana Membuat InfoWindow Dengan InfoBox di Google Maps  , silahkan simak contoh dari infobox berikut.
    Pertama tambahkan library infobox.js dan google maps API kedalam kode html anda tepatnya pada bagian setelah </head>
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=API_KEY_ANDA">
        </script>
        <script type="text/javascript" src="infobox.js"></script>

    Anda dapat mendownload infobox.js dr link berikut : Download.
    Ketikan kode javascript berikut pada kode html anda.
    <script type="text/javascript">
      function initialize() {
        var posisi = new google.maps.LatLng(0.512574, 101.448355);
        var myMapOptions = {
           zoom: 15
          ,center: posisi
          ,mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var theMap = new google.maps.Map(document.getElementById("canvas"), myMapOptions);
        var marker = new google.maps.Marker({
          map: theMap,
          draggable: true,
          position: posisi,
          visible: true
        });
        var boxText = document.createElement("div");
        boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: #1bbc9b; padding: 5px;color:#fff";
        boxText.innerHTML = "<center><h5>Simpang Tiga Deket Gramedia</h5></center>";
        var myOptions = {
           content: boxText
          ,disableAutoPan: false
          ,maxWidth: 0
          ,pixelOffset: new google.maps.Size(-140, 0)
          ,zIndex: null
          ,boxStyle: {
            background: "url('tipbox.gif') no-repeat"
            ,opacity: 0.75
            ,width: "280px"
           }
          ,closeBoxMargin: "-5px -10px 0px 0px"
          ,closeBoxURL: "https://cdn2.iconfinder.com/data/icons/officeicons/PNG/24/Close.png"
          ,infoBoxClearance: new google.maps.Size(1, 1)
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: false
        };
        google.maps.event.addListener(marker, "click", function (e) {
          ib.open(theMap, this);
        });
        var ib = new InfoBox(myOptions);
        ib.open(theMap, marker);
      }
    </script>

    Agar dapat ditampilkan dalam elemen DIV pada html, silahkan perhatikan peletakan tag berikut :
    <div class="row">
                <div class="col-md-12">
                    <div id="canvas"></div>
                </div>
            </div>

    Dengan ada tag id "canvas", secara otomatis javascript akan menimpa atau menampilkan maps pada elemn ini. Jangan lupa untuk menyeting ukuran dari maps dengan css , seperti berikut :
    #canvas {
    width: 100%;
    height:70%;
    margin:0px 5px 5px 0px;
    border: 5px solid #1bbc9b;
    }
    Jika maps anda masih belum muncul , maka tambah atribut onload pada tag body yang berfungsi untuk memproses fungsi pada script maps.
    <body onload="initialize()">

    Untuk demo infobox dasar silahkan kunjungi link berikut : Membuat InfoWindow Dengan InfoBox di Google Maps. Selanjutnya saya akan berikan script untuk membuat tampilan InfoBox lain, sebenarnya infobox hanya menggunakan gambar sebagai background.
    Membuat InfoWindow Dengan InfoBox di Google Maps 1
    Gambar 2
    Berikut syntax javascript nya :
    <script type="text/javascript">
      function initialize() {
        var posisi = new google.maps.LatLng(0.512574, 101.448355);
        var myMapOptions = {
           zoom: 15
          ,center: posisi
          ,mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var theMap = new google.maps.Map(document.getElementById("canvas"), myMapOptions);
        var marker = new google.maps.Marker({
          map: theMap,
          draggable: true,
          position: posisi,
          visible: true
        });
        var boxText = document.createElement("div");
        boxText.style.cssText = "padding: 5px;color:#fff";
        boxText.innerHTML = "<div ><div style='text-align:center;padding:7px'><h4><i class='fa fa-home'></i> Rumah Java Service and Consult</h4></div></div><div ><div><div style='width:130px;float:left'><center><img src='1.jpg' width='100px' height='100px'></center></div><div style='width:250px;float:right'><p style='margin-left:0px;'>Ini adalah isi kontennya yang jelas seterah saja mau isi konten seperti apa<br>Jalan mana saja : <h3><a href='www.java-sc.web.id'>@Java-Sc</a></h3> </p></div></div></div></div>";
        var myOptions = {
           content: boxText
          ,disableAutoPan: false
          ,maxWidth: 0
          ,pixelOffset: new google.maps.Size(-60, -260)
          ,zIndex: null
          ,boxStyle: {
            background: "url('infobox.png') no-repeat"
            ,width: "400px"
            ,height:"220px"
           }
          ,closeBoxMargin: "-5px -3px 0px 0px"
          ,closeBoxURL: "https://cdn2.iconfinder.com/data/icons/officeicons/PNG/24/Close.png"
          ,infoBoxClearance: new google.maps.Size(1, 1)
          ,isHidden: false
          ,pane: "floatPane"
          ,enableEventPropagation: false
        };
        google.maps.event.addListener(marker, "click", function (e) {
          ib.open(theMap, this);
        });
        var ib = new InfoBox(myOptions);
        ib.open(theMap, marker);
      }
    </script>
    Jika ingin merubah background silahkan ubah pada baris 27 , itu adalah background yang saya gunakan. Anda bisa mendesain menggunakan photoshop atau gimp dan timpa dengan nama file yang anda gunakan. Untuk demo silahkan kunjungi link berikut : Membuat InfoWindow Dengan InfoBox di Google Maps .

    Terimakasih sudah berkesempatan untuk menimba ilmu dari blog JSC, semoga ilmu yang di share dapat bermanfaat. Jika ada pertanyaan mengenai ilmu yang terkait ataupun tidak, mari kita berdiskusi di dalam kolom komentar ini.

    Keep Learning and Keep Sharing

    1. bagus tutorialnya, jika kita ingin memasukkan data markernya sepert long, lat, nama, dan alamatnya dari database ke infobox apakah bisa? tolong dijelaskan ya kak.. makasih banyak..

      BalasHapus
      Balasan
      1. Bisa gan, silahkan saja lihat tutorial yang ini http://www.java-sc.com/2016/07/google-maps-dengan-php-dan-mysql.html , kalau masalah infobox silahkan di sesuaikan saja.

        Bantu follow ya gan, atau bookmark. :-d

        Hapus
    2. Maaf gan, link untuk infobox.js nya tidak aktif yah? Atau filenya seperti diatas yg disebutkan?

      BalasHapus
      Balasan
      1. Terimakasih sudah melapor, link sudah di perbaiki. 8-)

        Hapus
      2. link nya sudah mati lagi gan, kalau bisa emailkan ke nugsan05@gmail.com ,thankss

        Hapus
      3. Bisa coba pakai yang ini, https://gist.github.com/jinthagerman/68a05aed074e0677834a. saya udah gak ada nyimpan filenya lagi. b-(

        Hapus
    3. Pak Hadi, kalau untuk di infowindownya ada url link nya bagaimana yah? saat ini saya menggunakan http://www.java-sc.com/2016/07/google-maps-dengan-php-dan-mysql.html

      misalnya pas indowindow detail saya klik muncul ke link baru.

      BalasHapus
      Balasan
      1. buat tag html biasa aja agan (a href="link"). kalau mau pindah ke halaman pas click infowindow bisa tambahin event untuk load halaman .

        Hapus