Menampilkan Rute Tercepat (Driving Directions) di Google Map Android

Sebelumnya kita sudah mencoba beberapa tutorial sebelumnya, sekarang kita bermain-main dengan rute tercepat milik google. 😀 Google sekarang sudah menghilangkan service direction karena bukan menjadi hak miliknya, namun service tersebut masih dapat diakses dengan cara lain, yaitu menggunakan Google Maps. Google Maps secara tidak langsung masih mendukung pencarian jalan tercepat, namun kita harus mengetahui ini agar kita dapat mencari jalan tercepat untuk aplikasi kita.

Alur pengambilan data pada sistem yaitu :

  • User merequest data berupa url string pada Google Map
  • Google Map mengembalikan berupa respon dalam format KML
  • File KML diolah/di-parsing sehingga didapat lokasi di mana saja sebagai jalan tercepat
  • Data tersebut digambarkan pada Google Map

Langsung saja nggak pake lama-lama, Pertama-tama kita buat sebuah file Overlay, kita beri nama DirectionPathOverlay.java. Class ini digunakan untuk menggambarkan garis berwarna merah pada peta kita. Baca lebih lanjut

Menambahkan Dialog pada Marker

Tutorial ini merupakan tutorial lanjutan dari tutorial sebelumnya. Sekarang kita akan belajar membuat dialog yang muncul pada saat kita meng-klik marker pada map view. Langsung saja ke tutorialnya.

Membuat Layout Dialog

Dialog juga perlu desain agar dapat tampil seperti yang diinginkan. Oleh karena itu kita harus mendesain terlebih dahulu. Di sini desainnya cukup simpel saja karena kita tidak butuh yang terlalu rumit. Yaitu klik kanan pada folder /res/layout/. Kemudian pilih New > Other, maka akan tampil seperti ini. Baca lebih lanjut

Menambahkan Marker pada Google Map di Android

Sebagai lanjutan dari post sebelumnya yaitu Membuat Aplikasi Google Map Kita Sendiri. Di sini akan dilanjutkan membuat tutorial tentang menambahkan marker dan mencoba dialog. Langsung aja deh 😉

Sebelumnya siapkan eclipse dan emulatornya.

Tambahkan file CustomItemizedOverlay.java pada package com.iddev.googlemap :

package com.iddev.googlemap;

import java.util.ArrayList;

import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class CustomItemizedOverlay extends ItemizedOverlay {
	private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
	private MainActivity mainActivity;

	public CustomItemizedOverlay(Drawable defaultMarker) {
		super(boundCenterBottom(defaultMarker));
	}
	
	public CustomItemizedOverlay(Drawable defaultMarker, MainActivity mainActivity) {
		super(boundCenterBottom(defaultMarker));
		this.mainActivity = mainActivity;
	}

	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);
		
		return true;
	}
}

Jika sudah, sekarang kita unduh dulu markernya dari sini. Kemudian extract dan masukan salah satu saja, misalnya bank.png. Cukup copy-paste ke dalam folder drawable yang ada di dalam folder res.

marker bank

marker bank

Oke, sekarang kita tambahkan beberapa coding sehingga pada MainActivity.java berubah menjadi seperti ini :

package com.iddev.googlemap;

import java.util.List;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;

public class MainActivity extends MapActivity {
	public MapView mapView;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.main);

		mapView = (MapView) findViewById(R.id.mapview);
		mapView.setBuiltInZoomControls(true);
		
		// set posisi tengah dari map
		MapController mapController = mapView.getController();
		mapController.setCenter(new GeoPoint(-7298115, 112739451));
		mapController.setZoom(12);
		
		List<Overlay> mapOverlays = mapView.getOverlays();
		Drawable drawable = this.getResources().getDrawable(R.drawable.bank);
		CustomItemizedOverlay itemizedoverlay = new CustomItemizedOverlay(drawable);
		GeoPoint point = new GeoPoint(-7298115, 112739451);
		OverlayItem overlayitem = new OverlayItem(point, "Ini adalah Judul", "Ini adalah keterangan");
		itemizedoverlay.addOverlay(overlayitem);
		mapOverlays.add(itemizedoverlay);
    }
    
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}

Sekarang kita jalankan dengan emulatornya.

hasil akhir

hasil akhir

Sudah jadi kan 🙂

Sekarang akan saya jelaskan maksud dari coding di atas untuk penambahan marker.

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

Digunakan untuk mengambil seluruh overlay yang ada pada google map. Apaan sih overlay itu ? Overlay itu semacam layer atau tumpukan di atas peta google map. Overlay bisa berbagai macam jenis, antara lain polyline, polygon, marker.

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

Kode ini digunakan untuk mengubah alamat pointer dari file bank.png menjadi tipe drawable. Karena tipe drawable merupakan class yang bisa digambar di aplikasi. Intinya me-load file tersebut.

CustomItemizedOverlay itemizedoverlay = new CustomItemizedOverlay(drawable);

melakukan inisialisasi itemizedOverlay, di sini gambar bank tadi dimasukkan ke dalam objek CustomItemizedOverlay yang kita buat. Class CustomItemizedOverlay digunakan agar objek dapat masuk ke dalam overlay-nya google map.

GeoPoint point = new GeoPoint(-7298115, 112739451);

Nah, kalo ini sudah pasti kita tahu kalau ini menentukan posisi dari marker untuk berada di Surabaya. 🙂

OverlayItem overlayitem = new OverlayItem(point, “Ini adalah Judul”, “Ini adalah keterangan”);

Kalo ini mendefinisikan bahwa variabel point tadi dimasukkan ke dalam overlayitem, sehingga isi dari overlay item adalah lokasi, judul, dan keterangan.

itemizedoverlay.addOverlay(overlayitem);

Ini apaan sih ? nggak, kita cuma memasukkan overlayitem ke dalam itemizedoverlay. Jadi yang awalnya itemizedoverlay cuma memiliki marker di dalamnya, kini memiliki koordinat lintang dan bujur (longitude & latitude).

mapOverlays.add(itemizedoverlay);

Nah, ini yang penting. itemizedoverlay merupakan sebuah marker, jadi kalo ingin memasukkan ke dalam google map, tinggal menambahkannya ke dalam mapOverlay.

Membuat Aplikasi Google Map Kita Sendiri di Android

Sebenarnya tutorial ini sudah ada di situs android sendiri, namun saya ingin menerjemahkan untuk yang kurang mengerti akan hal ini. Jika kita sudah mendownload eclipse dan android sdk, kita bisa memulai untuk mencoba membuat aplikasi ini 🙂

Pertama, buka Eclipse kita.

Eclipse Galileo

Eclipse Galileo

Selanjutnya kita buat sebuah Project baru dengan menekan menu File->New->Android Project. Baca lebih lanjut

Bake Ambient Texture pada Blender

hasil jadi

hasil jadi

Blender merupakan tool yang sangat powerful untuk membuat sebuah objek 3 dimensi. Kali ini kita akan membuat sebuah objek yang memiliki tekstur ambient. Maksud dari ambient ini adalah mengatur pencahayaan (shading) terhadap suatu objek agar objek 3d tersebut seolah-olah hidup. Baca lebih lanjut

Blender tanpa Jendela Console Terminal

hstart

hstart

Jika kita membuka lebih dari 1 file blender secara bersamaan, mungkin kehadiran jendela terminal yang biasanya berwana hitam akan sangat mengganggu kita. Bahkan kita bisa dibuat frustasi ketika kita bekerja dengan cara switch ke blender satu ke blender yang lain dalam satu komputer. Namun ada suatu cara untuk menanggulangi hal tersebut, yaitu dengan menggunakan program yang namanya hstart. Program ini digunakan khusus untuk menyembunyikan console pada suatu program.

Pertama, download hstart nya di sini : http://www.ntwind.com/download/hstart.zip Baca lebih lanjut

Salah satu cara optimasi netbeans

netbeans 6.8

netbeans 6.8

Dari banyak cara untuk mengoptimasi netbeans, salah satunya kita dapat menginstall netbeans dengan package sesuai keperluan kita. Jika kita melihat situsnya, ada berbagai jenis package yang ditawarkan, antara lain

  • J2SE
  • Java FX
  • Java
  • PHP
  • Ruby
  • C++
  • dan Paket Lengkap

Kalo kita sekadar ingin bekerja dengan aplikasi desktop ataupun applet, kita bisa memilih J2SE saja, sehingga library-library yang di-load tidak terlalu banyak. Selain itu paketnya juga memiliki ukuran yang kecil.

Tapi kalo sudah menginstall full package, yuk kita lihat blog-nya mas eko di http://wp.me/p7DcO-Nd 😀

Memainkan file suara dengan Java Media Framework

java media framework

java media framework

Pada library standard java, kita tidak disediakan untuk memainkan file suara secara langsung. Maka dari itu kita memerlukan satu lagi paket pendukung, yaitu Java Media Framework. Kegunaaan dari Java Media Framework atau yang sering disebut JMF. JMF dapat digunakan untuk banyak hal yang berhubungan dengan time-based media, yaitu musik, video, streaming, capture foto, dan lainnya.. 😀

Untuk itu, kita perlu mendownload dan  menginstall JMF :

http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html

Setelah kita menginstall, kita sekarang dapat menjalankan JMFCustomizer,  JMFCustomizer digunakan untuk meng-generate file dengan ekstensi .jar dan merupakan library dari aplikasi yang kita buat. Baca lebih lanjut

Membuat Pohon dengan Blender Script [gen3]

klik untuk memperbesar

klik untuk memperbesar

Membuat pohon secara mudah dapat dilakukan di blender. Kita hanya perlu mengklik konfigurasi jenis pohon, rotasi, ukuran dan masih banyak lagi.

Untuk mendapatkan plug-in/script nya kita dapat mendownloadnya di http://www.blendernewbies.com/misc/gen3.zip. Script tersebut extract, kemudian copykan ke folder .blender pada instalasi blender kita.

Lalu jalankan blender.

Kemudian pisah window kita menjadi 2 dengan cara klik kanan pada pinggir window dan pilih Split Area. Kemudian pilih tipe window adalah script. Script tersebut ada di Script -> Misc -> gen3.

Klik new seed, kemudian setting konfigurasinya dan klik generate, maka pohon akan muncul di 3d window.

Membuat Terrain dari Gambar pada JMonkeyEngine

 

hasil terrain

hasil terrain

Pada JMonkeyEngine terdapat fasilitas untuk membuat map melalui gambar grayscale. Fasilitas tersebut menggunakan image processing sebagai pengenalan warna pada gambar. Kita dapat mendefinisikan warna putih untuk ketinggian dan warna hitam untuk warna rendah. Jadi kita tidak perlu mendefinisikan titik-titik atau pun mengekspor file 3d dari 3d editor seperti 3ds max dan Blender. Baca lebih lanjut