Tutorial ini akan membahas cara penambahan Pin pada sebuah lokasi peta. Istilah Pin ini sama halnya dengan marker yang sering diistilah dalam Google Maps.
Agar kita dapat menggunakan layanan bing maps, terlebih dahulu kita harus mendapat sebuah key. Key ini kita gunakan untuk memanggil sejumlah layanan yang disediakan oleh bing maps. Untuk mendapat key ini sendiri bersifat free. Berikut ini langkah-langkah untuk mebuat atau mendapat key dari Bing Maps :
Cara Mendapatkan Key dari Bing Maps
- Silah buka alamat Bing Maps Dev Center : https://www.bingmapsportal.com/.
- Dalam menggunakan layanan Bing Maps Dev Center, kita harus menggunakan akun microsoft. Seandainya belum memiliki, dapat kita create pada link create account microsoft.
- Setelah anda sign-in dengan menggunakan microsoft account pada bingmapsportal.com, sehingga akan muncul informasi berupa pertanyaan sebagai berikut :
Do you want to use the account xxxx@outlook.com for your new Bing Maps account? Yes
Jika ya, maka klik "Yes" kemudian dilanjutkkan dengan pengisian data-data lainna yang harus diisi seperti :Account Name dan Email Address. - Pilih Key dibawah My Account seperti gambar dibawah ini :
- Minimal mengisi data pada bagian yang wajib diisi dalam mengcreate sebuah key:
- Application name: Required, menyatakan nama aplikasi
- Key type: Required. Pilih jenis yang akan anda create.
- Application type: Required. Silahkan pilih peruntukan jenis aplikasi tersebut.
Berikut ini adalah output ataupun hasil akhir dari tutorial yang akan kita kerjakan, seperti ditunjukkan oleh Gambar dibawah ini :
Langkah-langkah membuat Pin pada Bing Maps
1. Script untuk memanggil API Bing MapsKode dibawah ini berfungsi memanggil API dari Bing Maps. Disini kita menggunakan API Bing Maps versi 8
<script type='text/javascript'
src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap'
async defer>
</script>
2. Set map options
Dalam mengseting map options, sekurang-kurangnya kita harus mendefinisikan key yang telah kita dapatkan yang kemudian kita inputkan pada kode
<credentials>
// Seting Map Options
map = new Microsoft.Maps.Map('#myMap', {
credentials:"U4VD6Xi1NuVkAaN8KvJF~dereRmfzkm5VdVorK5lmlA~Ar4MuDpGzRmqdUtbXYvjm31t06tAU-400GnsVAY8Zna23hb05WjeiHiszdHOEAXU",
center: new Microsoft.Maps.Location(5.550176, 95.319263),
mapTypeId: Microsoft.Maps.MapTypeId.aerial,
zoom: 10
});
Kode
center
menyatakan lokasi kordinat titik tengah dari peta yang akan diload. Kode mapTypeId
menyatakan jenis peta dan zoom menyatakan level zoom
yang diset. Pengaturan map options ini dilakukan dalam fungsi GetMaps3. Mengatur jendela infobox berada di tengah pin
Langkah ini bertujuan untuk mengatur jendela atau window dialog berada pada posisi tengah dari pin yang akan diklik.
//Membuat jendela infobox berada di tengah pin (tidak ditampilkan)
infobox = new Microsoft.Maps.Infobox(map.getCenter(), {
visible: false
});
//Assign infobox pada variabel map
infobox.setMap(map);
4. Membuat Pin
Tujuan dari langkah ke-4 ini adalah membuat pin. Pin ini kita tambahakan ke variabel center, dimana variabel ini berisikan kordinat latitude dan longtitude.
var center = map.getCenter();
var pin = new Microsoft.Maps.Pushpin(center);
5. Membuat Informasi metadata pada pin
Langkah ini menambah keterangan atau informasi pada pin. Jika sebuah pin diklik maka akan dibangkitkan informasi metada tersebut.
//Menyimpan informasi metadata pada pushpin.
pin.metadata = {
title: 'Keterangan',
description: 'Ibukota Provinsi Aceh'
};
6.Membuat fungsi event click dan set entitas pushpin pada peta
// Menambah penanganan event click pada pushpin
Microsoft.Maps.Events.addHandler(pin, 'click', pushpinClicked);
//Memasang entitas pushpin pada peta
map.entities.push(pin);
7. Membuat fungsi yang menampilkan infobox ketika pushpin diklik
function pushpinClicked(e) {
if (e.target.metadata) {
//Menambah metadata pushpin pada option di infobox
infobox.setOptions({
location: e.target.getLocation(),
title: e.target.metadata.title,
description: e.target.metadata.description,
visible: true
});
}
}
8. Memanggil fungsi GetMap() dan id myMap
Langkah ke-2 s/d ke-7 dibuat dalam fungsi
GetMap()
. Dalam tag <body>
kita akan memanggil fungsi GetMap dan juga memanggil id myMap
seperti contoh dibawah ini :
<body onload="GetMap();">
.................
.................
.................
<div id="myMap" style="width:700px; height:500px"></div>
.................
.................
.................
</body>
Kode Lengkap Pembuatan Pin Bing Maps
Dalam tutorial ini kita membuat pin pada titik kordinat latitude dan longtitude :(5.550176, 95.319263) yang mana kordinat tersebut menyatakan kordinat untuk kota Banda Aceh. Dalam contoh ini kita mengimplementasikan bing maps pada Bootstrap.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="assets/css/bootstrap.css">
<link rel="stylesheet" href="assets/css/ilmudetil.css">
<script type='text/javascript'
src='http://www.bing.com/api/maps/mapcontrol?callback=GetMap'
async defer>
</script>
<script type='text/javascript'>
var map, infobox;
function GetMap() {
// Seting Map Options
map = new Microsoft.Maps.Map('#myMap', {
credentials:"U4VD6Xi1NuVkAaN8KvJF~dereRmfzkm5VdVorK5lmlA~Ar4MuDpGzRmqdUtbXYvjm31t06tAU-400GnsVAY8Zna23hb05WjeiHiszdHOEAXU",
center: new Microsoft.Maps.Location(5.550176, 95.319263),
mapTypeId: Microsoft.Maps.MapTypeId.aerial,
zoom: 10
});
//Membuat jendela infobox berada di tengah pin (tidak ditampilkan)
infobox = new Microsoft.Maps.Infobox(map.getCenter(), {
visible: false
});
//Assign infobox pada variabel map
infobox.setMap(map);
//Create sebuah pin/marker pada kordinat banda aceh
var center = map.getCenter();
var pin = new Microsoft.Maps.Pushpin(center);
//Menyimpan informasi metadata pada pushpin.
pin.metadata = {
title: 'Keterangan',
description: 'Ibukota Provinsi Aceh'
};
// Menambah penanganan event click pada pushpin
Microsoft.Maps.Events.addHandler(pin, 'click', pushpinClicked);
//Memasang entitas pushpin pada peta
map.entities.push(pin);
}
// Fungsi yang menampilkan infobox ketika pushpin diklik
function pushpinClicked(e) {
if (e.target.metadata) {
//Menambah metadata pushpin pada option di infobox
infobox.setOptions({
location: e.target.getLocation(),
title: e.target.metadata.title,
description: e.target.metadata.description,
visible: true
});
}
}
</script>
</head>
<body onload="GetMap();">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html">
Pusat Ilmu Secara Detil</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li class="clr1 active"><a href="index.html">Home</a></li>
<li class="clr2"><a href="">Programming</a></li>
<li class="clr3"><a href="">English</a></li>
</ul>
</div>
</div>
</nav>
</br></br></br></br>
<!--- Bagian Judul-->
<div class="container" style="margin-top:10px">
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading">Pin Bing Maps</div>
<div class="panel-body">
<div id="myMap" style="width:700px; height:500px"></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>