Tutorial Android GoogleMaps V2 Menggambar Marker, Garis dan Area

Tutorial android kali ini akan membahas terntang menggambar marker, garis dan area pada Android Google Maps V2.
Kalau sudah bisa buat aplikasi yang ada Mapnya, orang awam akan bilang wah mantap ente jeran plikasinya. Biasanya yang sering kita tampilkan dalam Map itu adalah titik lokasi yang digambarkan dengan sebuah marker. Ternyata kalau kita mau baca dan googling di maps itu kita bisa gambar polyline ( garis ) dan polygon ( area ) loh. Khususnya buat Β yang mau bikin rute sendiri untuk directionnya misalkan mau gambar directionnnya menggunakan algoritma dijkstra.
Banyak email masuk atau chat yang menanyakan ada nggak tutorial membuat direction dengan algoritma dijkstra. Biasanya saya tanya dulu.

1. Sudah paham algoritma dijkstra ?. (bisa search google dengan keyword “apa itu algoritma dijkstra“)
2. Tahu syarat utama agar metode/algoritma dijkstra dapat dijalankan?
Kalau dua pertanyaan diatas tidak bisa jawab. Sepertinya mustahil bisa buat rute menggunakan algoritma dijkstra.
Seperti metode lainnya agar metode dijkstra ini bisa dioperasikan sayratnya adalah harus ada data yang diproses, artinya kita harus punya data titik yang harus dilewati dari satu tempat ketempat lain.
Contohnya rumah saya di bekasi selatan mau ke cililitan.

Rute yang mungkin adalah

Rumah — Taman Mini — Hex — Cilitian

Rumah — pondok gede — Hex — Cilitan

Rumah Β — Pasar Rebo Β — Hex — Cililitan

Untuk jalankan metode dijkstra berarti harus punya data diatas sehingga dapat diketahui jalur terpendek. Kalau tidak punya data rutenya bagaimana bisa tahu jalur yang terpendek.
Itu baru dari rumah kecililitan sekarang saya lagi di blokm mau pulang kerumah lalu pengen buat direction dengan metode dijkstra. Berarti saya harus punya data rute-rute yang dilalui untuk sampai dari blok m Β ke rumah. Kalau tidak punya data rutenya apa mungkin bisa buat directionnya ?.

Jika untuk pembuktian ilmiah bahwa metode Dijkstra ini memang bernar bisa menenmukan rute terpendek adalah bisa dengan menggunkan contoh kasus dari lokasi A ke lokasi B

Kembali ke topik tutorial ini yaitu membahas tentang pembuatan Marker, garis dan Area di Google Maps V2 sekarang mari kita mulai langkah-langkahnya
1. Buat Project dengan nama LearnGooglemApsV2

2. Edit AndroidManifest.xml lalu ketikkan kode berikut

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.agusharyanto.learngooglemapsv2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <permission
        android:name="net.agusharyanto.learngooglemapsv2.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="net.agusharyanto.learngooglemapsv2.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="net.agusharyanto.learngooglemapsv2.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyAdFgLM2nNDmwjyvjlPm0EVoaTW57I6gjs" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>

3. Edit activity_main.xml lalu ketikkan kode berikut

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>

4. Edit MainActivity.java lalu ketikan kode berikut

 package net.agusharyanto.learngooglemapsv2;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polygon;
import com.google.android.gms.maps.model.PolygonOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

public class MainActivity extends FragmentActivity  {

	private GoogleMap gMap;

	static final LatLng TAMANMINI = new LatLng(-6.304059, 106.895599);

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initMap();
	}

	public void initMap(){
		SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
		gMap = mapFragment.getMap();
		gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(TAMANMINI,15));
		addMarker();
		addPolyGon();
		addPolyLine();

	}

	public void addMarker(){

			    Marker tamanmini = gMap.addMarker(new MarkerOptions()
			        .position(TAMANMINI)
			        .title("Taman Mini")
			        .snippet("Taman Mini itu Indah")
			        .icon(BitmapDescriptorFactory
			            .fromResource(R.drawable.ic_launcher)));
	}

	public void addPolyLine(){

		Polyline polyline = gMap.addPolyline(new PolylineOptions()
		.add(new LatLng(-6.305360,106.896007),
				new LatLng(-6.306277,106.896372),
				new LatLng(-6.306981,106.897187),
				new LatLng(-6.307215,106.898153),
				new LatLng(-6.307301,106.899054),
				new LatLng(-6.306831,106.900105)
		   ).width(5).color(Color.GREEN)
		);

	}

	public void addPolyGon(){
		Polygon polygon = gMap.addPolygon(new PolygonOptions()
		.add(new LatLng(-6.305296,106.898432),
			     new LatLng(-6.306831,106.898239),
			     new LatLng(-6.306981,106.899762),
			     new LatLng(-6.305509,106.900706)).strokeWidth(5)
		.strokeColor(Color.BLUE).fillColor(Color.RED));
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

5. Mari kita jalankan projectnya.

Terlihat Maps yang didlamnya ada Marker, Garis (Polyline) dan Area (Polygon).

Khusus untuk adik-adik mahasiswa yang lagi tugas akhir atau tesis. Terus Semangat dan buat orang tua kita bahagia
Supaya kita tambah sayang sama orang tua bisa klik link youtube dibawah
http://www.youtube.com/watch?v=0fAFDkraAAA

Untutk yang baru belajar Android GoogleMapsV2 bisa ke sini dulu http://agusharyanto.net/wordpress/?p=893

Semoga Bermanfaat
Salam Hangat
Agus Haryanto
Android Developer

Sumber
http://wptrafficanalyzer.in
http://developerandroid.com

23 comments to Tutorial Android GoogleMaps V2 Menggambar Marker, Garis dan Area

  • bayu

    eror pada (R.d.map)
    pada sour code
    (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
    mapx eror, artinya apa mas, trims

  • Agus Haryanto

    @bayu, activity_main.xml nya setelah edit sudah di simpan ?

  • bayu

    sudah bisa mas, trims mas πŸ™‚

  • anggi

    mas agus, coding sudah tidak eror, tp saat d hp m emulator saya muncul
    “unfortunately, LearnGooglemApsV2 has stopped”
    mohon bimbingannya mas.

  • Agus Haryanto

    @anggi,ifa coba lihat dilogcatnya supaya bisa diketahui penyenbab errornya

  • anggi

    kyk gni mas di logcatnya

    windowManager Starting window AppWindowToken{b2205938 token=Token{b2172b18 ActivityRecord{b21729b8 u0 net.agusharyanto.learngooglemapsv2/.MainActivity t5}}} timed out

    activitydestroy timeout for ActivityRecord{b21729b8 u0 net.agusharyanto.learngooglemapsv2/.MainActivity t5 f}

  • sabad

    mas saya ada eror pada (R.menu.main, menu), eror pada R.menu

    pada coding ini, mohon bimbingannya mas.
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;

  • Shu

    Malam mas. Mau nanya kalau nampilin long dan lat yg berasal dari database mysql bgmn ya mas? Terima kasih sebelum nya.

  • rizki

    malem mas, knp bisa eror pada “getFragmentManager”
    mohon bantuannya ?

    pada sourcode ini
    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
    .getMap();

  • ridho

    mas, tanya donk..

    saya kan install gms, tapi waktu di install ada kesalahan “install_failed_shared_user_incompatible”
    mohon bantuannya mas..

  • agungs

    kok error semua ya mas πŸ™
    mulai dari >> import com.google.android bla bla bla, dari atas sendiri sampai bawah sendiri πŸ™
    private GoogleMap gMap; dan bawahnya juga error mas πŸ™
    SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map); ini juga error mas πŸ™
    aku kudu piye mas?

  • hendrix

    Bisa di buatkan tutorial search engine untuk mencari kata dalam kalimat sehingga ketika di enter didapat semua kata yang di cari dalam bentuk list view. Mohon pencerahannya. Terima kasih.

  • bagus nih buat belajar

  • Rio

    Wah bagus juga tutorialnya πŸ™‚
    owh iya mas, boleh minta template WP nya gak ya hehee…

  • Keren mas tutorialnya, nanti mau di Coba ah.
    Buat yang masih error, baiknya di googling aja kesalahannya dimana. Copy pesan kesalahan yang ada di log cat-nya kemudian cari di Google. Biasanya nanti bule-bule suka udah ada yang bahas.

  • bagaimana kalau cara jika titik latitude dan longitudenya di ambil dari database???

  • azam

    keren mas tutorialnya. Mau tanya algoritma djistrak nya di coding yang mana ya?
    terimakasih sebelumnya

  • dias

    mas algoritma dijstra alur kerjanya berdasarkan titik awal yang di tentuin aja atau bisa jga dengan titik awal sesuai posisi penggunanya.mohon pencerahan mastah .

  • Agus Haryanto

    @dias, bisa dari titik manapun asalkan ada jalurnya dan kita punya data titik-titik yang akan dilewati.

  • ramous

    pa agus hariyanto,
    saya ingin tau aplikasi apa yang bapak gunakan untuk membuat aplikasi android…??

  • Whike Dwie Puspita

    mas agus flowchart nya gak ada ya ??

  • nahhh nemu dah caranya.. minta ilmu cara buat aplikasi androidnya ya pak agus hariyanto.
    semoga bapak agus sehat dan sukses terus amin

  • ini bnr2 ilmu yg sangat bermanfaat yg di share pak hary

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>