Marker sering digunakan untuk menandai sebuah lokasi. Biasanya sering digunakan
dalam membuat aplikasi Geolocation.
Pada kesempatan ini, kita akan belajar membuat marker di Google Maps dan
melakukan beberapa modifikasi.
Sudah siap?
1. position adalah posisi koordinat latitude dan longitude marker pada peta.
2. map objek dari peta (Google Map).
Contoh:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
// membuat Marker
var marker=new google.maps.Marker({
position: new google.maps.LatLng(-8.5830695,116.3202515),
map: peta
});
</head>
<body>
</body>
</html>
Hasilnya:
Live Demo: http://jsbin.com/raluzez/7/embed?output
Animasi Marker
Selain dua properti wajib, ada juga properti opsional seperti animation untuk
membuat animasi pada marker.
Contoh:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
// membuat Marker
var marker=new google.maps.Marker({
position: new google.maps.LatLng(-8.5830695,116.3202515),
map: peta,
animation: google.maps.Animation.BOUNCE
});
</head>
<body>
</body>
</html>
Hasilnya:
Kustom Ikon
Apabila kita tidak ingin menggunakan ikon bawaan dari marker yang berwarna merah.
kita bisa membuat kustom ikon sendiri dengan properti icon.
Nilai dari properti icon dapat berupa URL dari gambar ikon yang akan digunakan.
Format ikon tidak harus .ico, format gambar seperti jpg, png, dan gif juga diterima.
Contoh:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
// membuat Marker
var marker=new google.maps.Marker({
position: new google.maps.LatLng(-8.623592, 116.222123),
map: peta,
icon:
"https://developers.google.com/maps/documentation/javascript/examples/full/im
g/beachflag.png"
});
</body>
</html>
Hasilnya:
Hal ini dapat dilakukan dengan menambahkan event listerner klik pada peta. Lalu
memanggil fungsi untuk membuat marker.
Karena fungsi tersebut dipanggil di dalam event peta dan this sudah mewakili objek
dari peta.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
</script>
</head>
<body>
</body>
</html>
Hasilnya:
var marker;
function taruhMarker(peta, posisiTitik){
if( marker ){
// pindahkan marker
marker.setPosition(posisiTitik);
} else {
// buat marker baru
marker = new google.maps.Marker({
position: posisiTitik,
map: peta
});
}
}
Objek atau variabel marker kita taruh di luar fungsi agar menjadi variabel global.
if(marker){
//...
} else {
//...
}
Jika ada marker di peta, maka cukup pindahkan posisinya saja. Tapi kalau belum ada,
maka buat yang baru.
marker.setPosition(posisiTitik);
Contoh kode lengkapnya:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
// variabel global marker
var marker;
if( marker ){
// pindahkan marker
marker.setPosition(posisiTitik);
} else {
// buat marker baru
marker = new google.maps.Marker({
position: posisiTitik,
map: peta
});
}
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var peta = new google.maps.Map(document.getElementById("googleMap"),
propertiPeta);
</script>
</head>
<body>
</body>
</html>
Hasilnya:
Mengambil titik koordinat dari marker biasnya kita butuhkan saat membuat form
input. Lalu nilai koordinat tersebut dikirim ke database.
Kita bisa mengambil nilai koordinat dari marker dari dalam
fungsi taruhMarker() atau saat event peta diklik.
Contoh:
if( marker ){
// pindahkan marker
marker.setPosition(posisiTitik);
} else {
// buat marker baru
marker = new google.maps.Marker({
position: posisiTitik,
map: peta
});
}
}
Kode di ata akan menampilkan koordinat posisi dari marker ke console.
Lalu bagaimana agar nilai dari koordinat tersebut kita taruh di dalam form?
if( marker ){
// pindahkan marker
marker.setPosition(posisiTitik);
} else {
// buat marker baru
marker = new google.maps.Marker({
position: posisiTitik,
map: peta
});
}
}
Kode lengkap:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Tutorial Google Map - Petani Kode</title>
<script src="http://maps.googleapis.com/maps/api/js"></script>
<script>
// variabel global marker
var marker;
if( marker ){
// pindahkan marker
marker.setPosition(posisiTitik);
} else {
// buat marker baru
marker = new google.maps.Marker({
position: posisiTitik,
map: peta
});
}
function initialize() {
var propertiPeta = {
center:new google.maps.LatLng(-8.5830695,116.3202515),
zoom:9,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
</script>
</head>
<body>
</body>
</html>
Hasilnya:
Nah kalau sudah nilai koordinatnya ada di form, kita tinggal kirim saja ke database.