algoritma jalur terpendek : google maps v2 android
TS
cobacoba.coba2
algoritma jalur terpendek : google maps v2 android
Pagi
disini gue mau sharing (algoritma dijkstra) bgaimana cara menentukan jalur terpendek dari jalur yang kita buat sendiri, trus jalurnya ditampilkan di google maps.
Okeeey kita mulai .............
gue ajarin yg basicnya dulu ya, ini tahapan - tahapannya :
1. Gambar dulu jalur yang diinginkan lewat google maps,
2. Trus gambar grafnya sesuai jalur yang udah di buat pada tahap 1
3. Gambar jalurnya (buat dapetin koordinat dan bobotnya) melalui situs daftlogic.com(buat akun dulu)
4. update grafnya
5. buka sqlite di mozilla, (kita pake database buat nyimpan grafnya)
6. Mulai project di android
7. Selesai
Contoh jalur yang gue buat disini adalah jalur di sekitar TMII,
TAHAP 2
Spoiler for :
Kita gambar grafnya deh,
Kita tentuin arah jalurnya juga, jgn smpe lupa
TAHAP 3
Spoiler for :
Klo dah buat akun, trus login.
Arahin peta ke posisi TMII, trus buat jalur dari simpul 0 ke simpul 1 (lihat gambar tahap 1)
- Save rutenya, kasih nama 0-1
- Klik Export KML, klik Download KML
- Buka file downloadnya lewat notepad, cari tag <coordinates>,
itu koordinatnya masih kebalik, harusnya -6.290xxxxx, 106.88063xxxx dst..
buat ngebaliknya bs pake project gue, download disini
cara makenya :
Spoiler for cara make:
1. copy koordinat diantara tag <coordinates></coordinates>, buat file baru, paste, klik ctrl + f, pilih tab replace, trus isi find whatsm replace with kaya gambar di bwh ini, klik replace all
2. buka project yang udh di download lewat netbeans,
3. copy koordinat yang udh di replace all tadi, trus paste-in ke variable p
4. running, copy outputnya ke notepad, save dgn nama 0-1.txt
sekarang tinggal dapetin bobotnya, balik lagi ke daftlogic.com yg tadi, lihat kotak Total distance, disitu tertera bobot/jarak dalam satuan meter
nah bobot dari simpul 0 ke simpul 1 sudah kita dapetin, tinggal tulis ke grafnya,
* ulangi tahap 3 untuk mencari koordinat dan bobot dari simpul2 yang belum kita cari (1-0, 1-2, 1-3, 2-1, 3-2, 3-4, 4-0, 4-1)
Quote:
Kalo gak mau repot2 nyari koordinat+bobotnya, udah gue siapin yg udah jadi dimari
TAHAP 4
Spoiler for :
nah ini gambar graf yang udh terupdate bobotny :
TAHAP 5
Spoiler for :
Sekarang tinggal nyimpen graf ke databasenya..
1. Buka sqlite di mozilla (klo blom ada, install dulu )
2. Klik Database > New Database ; kasih nama "belajar" > ok > simpan di folder apa aja (terserah)
3. klik icon create table, isi kaya gambar di bawah > klik ok > yes
trus tinggal insert data grafnya, klik add, isi kaya dibawah :
Gambar 5.1
Keterangan gambar 5.1 :
data graf yang diisert adalah simpul 0 menuju simpul 1 (lihat graf pada tahap 4),
jadi simpul_awal = 0; simpul_tujuan = 1; bobot = 882.689;
isi field jalur didapat dari file 0-1.txt
nah setelah semua data graf diinsert, tampilannya kaya gini :
sebelum membuat project di android, agan harus punya API KEY GOOGLE ANDROID dulu, caranya? cari di google
Quote:
Oke lanjutt..
1. Buat Android Application :
*nama package disesuaikan sm punya agan
2. klik next terus aja, smpe finish
3. Buka AndroidManifest.xml, tmbahin script berikut :
*yg gue coret disesuaikan sm pnya ente gan.
4. import library google-play-services_lib supaya icon silang warna merahny ilang.
5. Copy database belajar.sqlite (yg kita buat di tahap 5) ke dalam folder Belajar\assets
6. download buat manggil databasenyadan algoritmanya.
7. Klo udh di download, taroh dimari..
8. Buka activity_main.xml, ketikkin kaya di bawah :
int start = 0;
//Query DB; Gambar Jalurnya!
dbHelper = new SQLHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
for(int i = 0; i < exp.length-1; i++){
ArrayList<LatLng> lat_lng = new ArrayList<LatLng>();
cursor = db.rawQuery("SELECT jalur FROM graph where simpul_awal
="+exp[start]+" and simpul_tujuan ="+exp[(++start)], null);
cursor.moveToFirst();
int idx_koord = 0;
String[] exp_koord = cursor.getString(0).split(",");
for(int j = 0; j < exp_koord.length/2; j++){
lat_lng.add( new LatLng(Double.parseDouble