Subscribe RSS Join our Facebook Group Follow us on Twitter!
in Search

Izzuddin Gumilar's Blog

February 2011 - Posts

  • Simulasi GPS pada Windows Phone 7 Emulator dengan Menggunakan FakeGPS

    Windows Phone 7 telah dilengkapi dengan perangkat Global Positioning System (GPS) yang dapat digunakan untuk mengetahui posisi device berada di dalam sistem koordinat posisi di permukaan bumi. Namun dalam pembangunan sebuah aplikasi yang memanfaatkan GPS seringkali kita mengalami kendala karena windows phone emulator tidak dapat secara langsung mengakses sensor GPS. Oleh karena itu, developer harus menggunakan teknik mocking untuk dapat mengetahui koordinat posisi pada windows phone simulator. Salah satu caranya adalah dengan menggunakan FakeGPS yang dapat diunduh dari http://wp7gps.codeplex.com. FakeGPS merupakan class tambahan yang di-include ke dalam project aplikasi kita agar dapat mensimulasikan GPS.

    Cara menggunakannya adalah sebagai berikut :

    1. Masukkan FakeGPS.cs yang telah kita download ke dalam project kita dengan cara copy FakeGPS.cs ke dalam directory project terlebih dahulu, lalu include to project file tersebut ke dalam project aplikasi kita.

     Copy FakeGPS into project

    Show all files 

    Include fakeGPS.cs into project 

    2. Kita tambahkan reference System.Device dan System.Xml.Linq juga ke dalam peoject kita. System.Device digunakan untuk mendapatkan variable GeoCoordinate yang berisi data spatial koordinat posisi sedangkan System.Xml.Linq digunakan oleh FakeGPS.cs untuk membaca route xml yang berisi data xml manipulasi spatial gps.

     add system.device reference

    Add system.xml.linq 

    3. Kita generate route XML configuration yang bisa kita peroleh dari http://wp7gps.codeplex.com di bagian bawah halaman, lalu kita masukkan ke dalam variable string ROUTE di dalam FakeGPS.cs

      1 public const string ROUTE = @"
    2 <?xml version='1.0' encoding='UTF-8' ?>
    3 <routes update_interval='500' pause='2000' meters_per_second='2763.57673104478' >
    4 <route lat='-7.282644' lon='112.793963' duration='30.0' heading='186.7' />
    5 </routes>"
    ;

    XML Route berisi manipulasi rute koordinat posisi yang nantinya akan dibaca oleh aplikasi sebagai hasil output sensor GPS. Xml Route ini tidak hanya menyimpan satu koordinat titik saja, tetapi juga dapat berisi informasi yang digunakan untuk GPS Tracking yang memiliki beberapa titik koordinat yang dilalui.

    4. Setelah kita selesai memanipulasi xml route di atas, kita masuk ke dalam business login sistem aplikasi kita. Sebagai contoh, kita tambahkan object button dan textbox pada windows phone page.

    5. Kita tambahkan event method pada saat tombol ditekan untuk mengeluarkan posisi latitude dan longitude pada textbox yang sudah kita tambahkan tadi seperti di bawah ini.

      1 private void button1_Click(object sender, RoutedEventArgs e)
    2 {
    3 IGeoPositionWatcher<GeoCoordinate> _watcher
    4 if (System.Diagnostics.Debugger.IsAttached)
    5 _watcher = new FakeGps();
    6 else
    7 _watcher = new GeoCoordinateWatcher();
    8
    9 _watcher.Start();
    10 this.textBox1.Text = _watcher.Position.Location.Latitude+" - "+_watcher.Position.Location.Longitude;
    11 }

    Method di atas memiliki maksud apabila sistem berjalan dalam pada kondisi debugging atau berjalan pada emulator, variable _watcher akan akan diisi oleh informasi class dari fakeGPS. Sedangkan apabila sistem tersebut sudah dideploy ke dalam device windows phone 7, maka _watcher akan diisi oleh nilai dari sensor GPS device sebenarnya.

    6. Hasilnya dapat kita lihat pada gambar di bawah ini.

    Result

    Download source here.