Last Updated on 11 years by Mas Herdi
Yo guys. Kali ini saya akan berbagi tentang bagaimana cara menambahkan marker dan menampilkannya pada peta menggunakan Android Maps API v2.
Apa itu marker? Marker pada Android Maps V2 berfungsi sebagai sebagai penanda titik lokasi (latitude dan longitude) pada peta. Tenang, caranya gampang sekali kok, saya bisa pasti kalian juga bisa. 😀
Pre-Requisites
Sebelum melakukan tutorial ini, kalian harus membaca beberapa postingan berikut :
- Tutorial Menampilkan Maps Menggunakan Android Maps API v2 dan MapFragment
- Menampilkan Lokasi Pengguna di Peta Menggunakan Android Maps API V2
- Kumpulan Tutorial Android Maps API V2
Di dalam postingan di atas, mungkin ada pre-requisites lagi yang harus kalian lakukan.
Menambahkan Marker pada Peta
Oke, setelah kalian berhasil melakukan tutorial-tutorial sebelumnya. Kita akan mencoba untuk menambahkan marker pada peta. Berbeda dengan Android Maps API v1 yang mempunyai cara yang lumayan rumit ketika ingin menampilkan marker di peta, Android Maps v2 mempunyai cara yang lebih mudah, dan sintaks-nya mirip dengan sintaks yang dipakai oleh Google Maps Javascript API.
Pertama-tama kita membuat tiga buah variable bertipe LatLng pada kelas MainActivity terlebih dahulu yang berisikan informasi latitude dan longitude tempat dimana marker akan diletakkan.
//.. private LatLng latLngBiru = new LatLng(35.6829733, 139.7321275); private LatLng latLngKuning = new LatLng(35.6847009,139.7314891); private LatLng latLngMerah = new LatLng(35.6839537, 139.7308615); //..
Setelah itu kita tambahkan marker tersebut pada objek GoogleMap menggunakan kode di bawah ini. Tambahkan kode berikut pada method onCreate().
map.addMarker(new MarkerOptions() .position(latLngBiru) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)) .title("tempat rahasia").snippet("rahasia lho")); map.addMarker(new MarkerOptions() .position(latLngKuning) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)) .title("bangunan kampus").snippet("bangunan utama")); map.addMarker(new MarkerOptions() .position(latLngMerah) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_RED)) .title("kantin kampus").snippet("makan makan"));
Ketika kita ingin menambahkan sebuah marker pada peta, kita harus mengikutsertakan sebuah objek MarkerOptions. Marker mempunyai beberapa properti yang bisa kita set, dan properti-properti itu ditampung dalam kelas MarkerOptions.
Pada kode di atas bisa dilihat properti yang saya set antara lain adalah position, icon, title dan snippet. Properti position wajib diset karena itu berisi informasi(lat, long) di mana marker tersebut harus diletakkan. Kemudian untuk marker icon saya mengambil default marker dari Android Maps API v2, dan mengeset warnanya sesuai jenis marker, merah, kuning dan biru.
Kemudian supaya pada saat aplikasi dibuka kita bisa langsung menuju ke tempat di mana marker tersebut berada, kita menggunakan kode di bawah ini.
map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLngBiru, 17));
Kode berikut akan menganimasikan peta ke suatu posisi(lat, long) dan zoom tertentu yang bisa kita set.
Ketika sudah ditambahkan, maka kode MainActivity class milik kalian akan mirip dengan kode berikut :
public class MainActivity extends FragmentActivity { private GoogleMap map; private LatLng latLngBiru = new LatLng(35.6829733, 139.7321275); private LatLng latLngKuning = new LatLng(35.6847009,139.7314891); private LatLng latLngMerah = new LatLng(35.6839537, 139.7308615); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps_main); SupportMapFragment mapFrag = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); map = mapFrag.getMap(); map.setMyLocationEnabled(true); map.addMarker(new MarkerOptions() .position(latLngBiru) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)) .title("tempat rahasia").snippet("rahasia lho")); map.addMarker(new MarkerOptions() .position(latLngKuning) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)) .title("bangunan kampus").snippet("bangunan utama")); map.addMarker(new MarkerOptions() .position(latLngMerah) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_RED)) .title("kantin kampus").snippet("makan makan")); map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLngBiru, 17)); } }
Dan… inilah tampilan ketika aplikasi dijalankan 🙂
Semoga bermanfaat 🙂
gan, untuk markernya bisa bikin sendiri ga? klo di tutorial di kan cuman ada 3 tuh soalnya. thanks gan 😀
bisa saja, bisa ditambahkan sesuka hati, tinggal panggil saja fungsi
map.addMarker()
untuk menambahkan marker seperti di atasgan, cara markernya diubah pake gambar gimana yak? makasih sebelumnya
sekedar membantu ^_^ >> ini script lengkapnya, saya berhasil dicoba di Bluestack 😀
Mas, kalo info windownya biar bisa ditambahkan button gimana caranya? jadi skemanya nanti button di info window bisa di klik untuk mendapatkan informasi lebih lanjut mengenai si marker.
Untuk button tidak bisa ditambahkan pada InfoWindow maps, yang bisa dilakukan adalah mengeset onInfoWindowClickListener supaya begitu info window diklik akan terdeteksi dan ter-trigger event
klo update markernya dari aplikasi langsung bisa gak?? flexyble update.
maksudnya gak perlu ditambahin dari coding..
bisa banget gan…
caranya bisa dibaca di http://www.twoh.co/2014/09/menambahkan-fitur-check-pada-android-location-based-service-maps-api-v2/
mas Hafizh Herdi Naufal , Saya mengalami blank white screen di gmaps v2 dan hanya menampilkan tombol akses lokasi dan zoom saja.
#Run di android device
Itu solusinya bagaimana?
mas, itu biar jadi citra 3D GMaps gimana caranya ya?
Citra 3D hanya bisa dilihat di lokasi-lokasi tertentu saja, untuk Jakarta bisa ke daerah Sudirman terus di-tilt petanya. Otomatis nanti berubah menjadi citra 3D
sebelumnya makasih gan udah buat tutorial yang menarik.
mau nanya gan, untuk infoWindow cuma bisa 2 line?
contoh :
Toko A
keterangan
pinginnya
Toko A
keterangan 1
keterangan 2
ato bisa di akalin?
Bisa, line bisa lebih dari 2 baris, bahkan satu paragraf pun bisa 🙂
Kita juga bisa buat custom layout dan dimasukkan ke dalam infowindow
mas, gmana tuh mas tutorialnya kalo buat satu paragraf untuk keterangan nya
Tinggal dimasukkan pada bagian
info window
mas, saya kan menggunakaan cara di atas, selanjutnya saya ingin menambahkan lokasi terdekatnya, dan bisa terdeteksi jarak antara pengguna..gimana mas tutorialnya?
untuk ganti map/petanya itu dengan map buatan sendiri apa bisa? gimana caranya makash sblumnya
bisa, jika kamu sudah ada imagery berupa raster atau vector atau punya tile map server sendiri bisa di overlay di atas google maps
gan mau nanya,kalau mau buat peta dan lokasi tempat didalam kampus semisal kantin,laboratorium,loket,ruang jurusan dll, di android apa saja yang diperlukan dan bagaimana langkah2nya?
Mas, gimana cara ngasih id si markernya itu?
jadi begitu di klik, muncul window baru berisi komentar berdasarkan id marker tsb.
sederhananya seperti snipet berisi id ‘1’, kemudian misalkan di getsnipet untuk mendapatkan id tsb. Tp snipet kan keliatan, maunya yang tersembunyi. gmn ya?
Untuk itu bisa menggunakan HashMap untuk memasangkan marker tertentu dengan ID tertentu. Nantinya semua marker yang ditampilkan di peta akan disimpan pada HashMap tersebut, dan jika ingin mengambil id dari marker tertentu bisa diambil dari HashMap itu juga
Mas saya mau nanya, gimana caranya ketika marker diklik, memunculkan pop up ato halaman baru berupa form yg nantinya halaman tersebut bisa diisi..
terimakasih
Kak kira-kira tau gak ini kesalahannya dimana ya kak terimakasihh
Error:(25, 22) error: method getMapAsync in class SupportMapFragment cannot be applied to given types;
required: OnMapReadyCallback
found: no arguments
reason: actual and formal argument lists differ in length
kalau mau buat pencarian suatu lokasi tutorial mana yang cocok kak ?
untuk cara paling cepatnya ikutin di sini https://www.twoh.co/2015/04/19/android-places-api-membuat-placepicker-sederhana/
gimana jika kita ingin menampilkan markernya dari database ??
bisa dibaca di tutorial ini sudah ambilnya dari database gan
https://www.twoh.co/2014/08/03/membuat-aplikasi-location-based-services-di-android-menggunakan-maps-api-v2/
bagian map = mapFrag.getMap(); itu error