Membuat Tanda dalam Google Maps di android

Contoh Kasus:

Saya ingin menampilkan icon rumah dalam sebuah peta seperti terlihat pada gambar dibawah ini:

Lalu ketika saya klik gambar rumah diatas maka akan keluar dialog seperti terlihat pada gambar dibawah ini:

Pertanyaan:

Bagaimana cara membuatnya … ?

Jawaban:

Sebelumnya kamu harus membaca artikel berikut ini.

Lalu buatlah satu class JAVA bernama marker dengan isi seperti kode berikut ini:

public class Marker extends ItemizedOverlay<OverlayItem>{ 

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();

private Context mContext;

public Marker(Drawable defaultMarker, Context context) {

super(boundCenterBottom(defaultMarker));

mContext = context;

}

public void addOverlay(OverlayItem overlay) {

mOverlays.add(overlay);

populate();

}

@Override

protected OverlayItem createItem(int i) {

return mOverlays.get(i);

}

@Override

public int size() {

return mOverlays.size();

}

@Override

protected boolean onTap(int index) {

OverlayItem item = mOverlays.get(index);

AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);

dialog.setTitle(item.getTitle());

dialog.setMessage(item.getSnippet());

dialog.setButton  dialog.setPositiveButton(“Close”, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss();

}

});

dialog.show();

return true;

}

}

Keterangan:

  • super(boundCenterBottom(defaultMarker)), Kode ini digunakan untuk mengetengahkan bagian bawah dari gambarmu ke koordinat peta.
  • mOverlay.add(overlay), Kode ini digunakan untuk menambah overlay ke ArrayList mOverlay.
  • populate() adalah metode yang digunakan untuk membaca OverlayItem dan mempersiapkan untuk menggambarnya.
  • createItem(int i), metode ini dijalankan saat metode pupulate dijalankan, metode ini digunakan untuk mengambil setiap Overlayitem.
  • size() adalah metode yang digunakan untuk mengambil jumlah item dari ArrayList.
  • onTap(int index) adalah metode yang dijalankan saat user menekan gambar.
  • item.getTitle(), Kode ini digunakan untuk mengambil Title dari OverlayItem.
  • item.getSnippet(), Kode ini digunakan untuk mengambil isi teks dari OverlayItem.

Perubahan pada Activity Gmap

Masukkanlah kode berikut ini ke dalam metode onCreate():

MapView peta=(MapView) findViewById(R.id.peta); 

MapController  mc = peta.getController();

mc.setZoom(14);

List<Overlay> mapOverlays = peta.getOverlays();

Drawable drawable = this.getResources().getDrawable(R.drawable.home_1);

Marker itemizedoverlay = new Marker(drawable, this);

double lat=Double.parseDouble(“-6.578795”);

double lng=Double.parseDouble(“106.771445”);

GeoPoint point = new GeoPoint((int)(lat*1E6), (int)(lng*1E6));

OverlayItem overlayitem = new OverlayItem(point, “Kursus a2fahmi.com”, “ini rumah Fahmi Basya Kartapura”);

itemizedoverlay.addOverlay(overlayitem);

mapOverlays.add(itemizedoverlay);

Keterangan:

  • MapController  mc = peta.getController(), kode ini digunakan untuk membuat objek MapController. Class MapController digunakan untuk mengelola pergeseran dan zoom dari peta.
  • mc.setZoom(14), Kode ini digunakan untuk memperbesar peta sebanyak 14 zoom level.
  • peta.getOverlays(), Kode ini digunakan untuk mengambil semua daftar dari overlay yang terdapat dalam MapView.
  • this.getResources().getDrawable(R.drawable.home), Kode ini digunakan untuk mengambil gambar home.png yang berada dalam folder res/drawable.
  • new Marker(drawable, this), Kode ini digunakan untuk membuat objek Marker.
  • new GeoPoint((int)(lat*1E6), (int)(lng*1E6)), Kode ini digunakan untuk membuat objek GeoPoint.
  • itemizedoverlay.addOverlay(overlayitem), Kode ini digunakan untuk menambahkan overlayitem ke objek itemizeoverlay.
  • mapOverlays.add(itemizedoverlay), Kode ini digunakan untuk menambahkan objek itemizedoverlay ke dalam list mapOverlays.

 

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *