Home > GPS Tracking System, Google Map > Aplikasi Pemantau GPS Tracking dengan Google Maps

Aplikasi Pemantau GPS Tracking dengan Google Maps

Pada artikel sebelumnya telah dijelaskan bagaimana arsitektur global sistem GPS Tracking yang terdiri dari Tracking Device dan Aplikasi Pemantau. Pada artikel ini dibahas mengenai Aplikasi Pemantau GPS Tracking.

Pendahuluan

Aplikasi pemantau akan menampilkan Marker di atas tampilan peta Google Map. Marker ini merepresentasikan posisi GPS Tracking Device terakhir. Data koordinat untuk Marker diambil dari tabel lastpos yang isinya senantiasa di-update oleh GPS Tracking Device sehingga selalu didapatkan informasi posisi yang up to date.

Aplikasi pemantau terdiri dari beberapa bagian yang dapat digambarkan sebagai berikut.

Arsitektur Aplikasi Pemantau

Bagian Keterangan
File viewer.php File utama dari aplikasi pemantauan. Terdiri dari Google Map Object. Terdapat definisi timer yang akan memanggil file lastpos.xml.php pada setiap perioda timer yang mengakibatkan tampilan marker pada Google Map Object akan ter-update dengan data terbaru yang ada pada database
File lastpos.xml.php File yang berguna utuk membaca data dari database dan menghasilkan keluaran berupa data dalam bentuk XML untuk digunakan oleh Google Map Object untuk menampilkan marker pada posisi tertentu
Google Map Object Object Google Map yang berguna untuk menampilkan peta pada suatu posisi koordinat dan level zoom tertentu.

Selanjutnya mari kita bahas secara detail fungsional masing-masing bagian aplikasi pemantauan.

Desain Tampilan User Interface

Berikut ini adalah desain tampilan user interface aplikasi pemantauan yang akan kita bangun.

Desain User Interface Aplikasi Pemantau

User interface nya sendiri sangat sederhana, hanya terdiri dari object Google Map, list box yang berisi kode benda bergerak yang akan dipantau, dan satu tombol Zoom To yang akan memindahkan posisi peta Google Map dengan titik tengah adalah koordinat benda bergerak yang dipilih pada list box. Selain ini, kita juga akan melihat kotak informasi yang berisi infromasi detail tentang benda bergerak yang dipilih seperti kode, koordinat, waktu dan sebagainya.

Inisialisasi Google Map Object

Perhatikan baris-baris kode program di bawah ini, yang merupakan penggalan dari file viewer.php.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Sistem Pemantau GPS Tracking</title>
<script src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=abcde" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
   var map = null;
   var timeOut=null;
   var markers=[];
   var htmls=[];
   function load()
   {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-6.8790, 107.63520), 12);
        map.enableScrollWheelZoom();
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        refreshMarkers();
     }
  }
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
 <div id="map" style="width: 400px; height: 400px">Loading</div>
</body>
</html>

Pada baris 10-13 dilakukan inisialisasi variabel masing-masing:

  1. map : variabel object Google Map
  2. timeOut: variabel timer
  3. markers : array yang menampung semua marker yang ada pada peta
  4. htmls : array yang menampung semua data HTML untuk kotak informasi semua marker yang ada pada peta

Pada baris 15-28 didefinisikan function load() yang merupakan function yang pertama kali dipanggil ketika dokumen HTML di-download oleh user. Hal yang dilakukan disini adalah

  1. Pada baris 19: membuat object Google Map dan menyimpannya pada variabel map
  2. pada baris 20: menjadikan object map bereaksi terhadap wheel button pada mouse, yaitu jika tombol wheel pada mouse diputar akan menyebabkan peta di zoom out dan in. Ini dilakukan dengan memanggil method enableScrollWheelZoom()
  3. pada baris 21: ditambahkan area kontrol peta yang dapat digunakan untuk menggeser, men-zoom in dan out peta. Ini dilakukan dengan memanggil method addControl() dengan parameter object GSmallMapControl.
  4. Pada baris 22: ditambahkan area kontrol yang dapat digunakan untuk memilih jenis peta apakah peta jalan, foto satelit, atau keduanya. Ini dilakukan dengan memanggil method addControl() dengan parameter object GMapTypeControl.
  5. Pada barus 23: kita melakukan penentuan titik pusat peta dengan method setCenter() dan memilih jenis peta gabungan peta satelit dan peta jalan (hybrid) dengan method setMapType().
  6. Setelah inisialisasi dilakukan, kita memanggil function refreshMarkers() untuk segera menampilkan marker yang merupakan representasi dari benda bergerak yang hendak kita pantau.

Menampilkan Marker dari data

Hal ini dilakukan melalui dua function refreshMarkers() dan createMarker(). Perhatikan baris-baris kode dibawah ini, yang juga merupakan bagian dari file viewer.php.

function refreshMarkers()
{
    clearTimeout(timeOut);
    GDownloadUrl("lastpos.xml.php", function(data, responseCode) {
        var fetch=0;
        window.status= responseCode + ‘:’ + fetch++;
        if(responseCode != 200)
        {
            return;
        }
        for (var i=0; i<markers.length; i++)
        {
            map.removeOverlay(markers[i]);
        }

        var xml = GXml.parse(data);
        var xmarkers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < xmarkers.length; i++)
        {
            var label = xmarkers[i].getAttribute("label");
            var point = new GLatLng(
                 parseFloat(xmarkers[i].getAttribute("lat")),
                 parseFloat(xmarkers[i].getAttribute("lon")));
            map.addOverlay(createMarker(point, i, label) );
          }
    });
    timeOut=setTimeout("refreshMarkers()",5000);}

Baris kode di atas menampilkan function refreshMarkers() yang dipanggil oleh function load() seperti sebelumnya.

Hal pertama yang dilakukan setiap kali function ini dipanggil adalah mematikan timer jika sudah pernah didefinisikan pada variabel timeOut. Ini terlihat pada baris 3.

Selanjutnya pada baris 5 dilakukan pemanggilan function GDownloadUrl(). URL yang dipanggil adalah file lastpos.xml.php yaitu file yang akan mengeluarkan data dalam bentuk XML yang berisi informasi koordinat marker atau benda bergerak yang akan dipantau. Ini contoh sederhana file tersebut:

<?
mysql_connect("localhost","root","");
mysql_select_db("dijexi_gps");
$sql="select * from lastpos order by id";
$res=mysql_query($sql) or die(mysql_error());
echo ‘<?xml version="1.0" encoding="UTF-8"?>’;
echo "<markers>\n";
while($row=mysql_fetch_array($res))
{
 $unit_id    =$row[‘unit_id’];
 $latitude   =$row[‘lat’];
 $longitude  =$row[‘lon’];
 echo ‘<marker lat="’.$latitude.‘" lon="’.$longitude.‘" label="’.$unit_id.‘" /> ‘;
}
echo "</markers>\n";
?>

Setelah selesai download function ini akan mengeksekusi function yang didedinisikan pada parameternya yang kedua dengan memberikan input berupa data yang diperoleh dari download dan responseCode (kode response dari server).

Hal yang dilakukan oleh function yang menhandle data yang berhasil didownload terlihat mulai dari baris 6. Hal pertama yang dilakukan adalah menampilkan status bar sehingga berisi informasi kode response untuk memudahkan kita melakukan debugging, terutama jika proses download dari URL yang ditentukan gagal alias responseCode buka angka 200.

Jika download gagal, maka langsung keluar dari function ini dan menunggu timer event berikutnya. Ini dilakukan pada baris 7-10.

Baris 12-15 melakukan penghapusan terhadap semua marker yang sebelumnya telah disimpan pada variabel array markers. Ini dilakukan dengan menjalankan method removeOverlays() dari object map terhadap markers dengan index i, dimana i dimulai dari 0 sampai dengan banyaknya jumlah elemen array markers, yaitu markers.length.

Pada baris 17 dilakukan parsing data XML hasil download menjadi variabel xml yang berjenis data XML, yang dilakukan oleh function mehtod parse() dari object Gxml.

Setelah berhasil diparsing, object variabel xml dapat dibaca datanya, salah satunya untuk mengambil suatu elemen data tertentu. Misalnya pada baris 18, kita mengambil elemen dengan nama “marker”, dilakukan dengan function menthod getElementsByTagName(”marker”) yang terdapat pada object documentElement yang terkandung didalam object xml. Elemen-elemen data XML ini kemudian disimpan dalam variabel array JavaScript yang bernama xmarkers.

Setelah diperoleh elemen yang dimaksud maka dapat dilakukan perulangan terhadap semua isi array xmarkers untuk mengambil atribut yang terdapat pada data XML yang diwakilinya. Ini dilakukan mulai dari baris 19 – 25, yaitu men-setup variabel i yang dimulai dari 0 sampai dengan banyaknya elemen array xmarkers, yaitu xmarkers.length.

Hal yang dilakukan pada setiap perulangan adalah mengambil atribut “label” yang terdapat pada setiap elemen data XML. Caranya adalah dengan memanggil method getAttribute(”label”) pada object xmarkers dengan index i. Atribut ini disimpan pada variabel label.

Selanjutnya pada baris 21-23 diambil juga atribut “lat” dan “lon” dari setiap elemen data XML. Namun atribut ini langsung dikonversi dari string menjadi data dengan tipe float oleh function parseFloat(), dan dijadikan parameter untuk pembuatan object baru dengan tipe GLatLng() yang disimpan pada variabel point.

Pada baris 24, variabel point tersebut digunakan sebagai parameter untuk function createMarker() yang akan dijelaskan selanjutnya. Function createMarker() ini mengeluarkan data dengan jenis GMarker sehingga dapat langsung dipakai untuk menampilkan marker pada Google Map yaitu dengan memanggil method addOverlay().

Perhatikan baris 28 pada kode di atas.

TimeOut = setTimeout("refreshMarkers()",5000);

Ini adalah perintah JavaScript untuk mendefinisikan timer yang akan mengeksekusi perintah tertentu setiap periode waktu tertentu. Dalam hal ini ia akan mengeksekusi refreshMarkers() setiap 5000 ms alias 5 detik.

Perintah ini sendiri dijalankan di dalam function refreshMarkers() sehingga akan didapatkan suatu perulangan yang terjadi terus menerus.

Selanjutnya, ini adalah definisi function createMarker() yang digunakan untuk membuat object baru dengan tipe GMarker dan dengan paramter tertentu.

function createMarker(point, index, label)
{
    var marker = new GMarker(point );
    var html= "<pre>"+label+"</pre>";
    GEvent.addListener(marker, "click", function() {
         marker.openInfoWindowHtml(html)});
    markers[index]=marker;
    htmls[index]=html;
    return marker;
}

Baris kode di atas menampilkan function createMarker() yang akan dipanggil oleh function refreshMarkers() seperti yang telah dijelaskan sebelumnya. Function ini akan menghasilkan object marker dengan icon yang bukan berupa icon standard Google Map melainkan icon yang kita definisikan sendiri.

Pada baris 1 terdapat definisi function createMarker() yang memiliki parameter point berupa informasi koordinat dimana marker akan ditampilkan, index berupa informasi marker ini adalah yang keberapa, dan label yang akan ditampilkan pada kotak informasi untuk marker tersebut.

Pada baris 2, kita membuat variabel icon yang merupakan variable dari object GIcon, yaitu object Google Map API yang digunakan untuk menampilkan icon.

Pada baris 3, kita menentukan gambar yang akan digunakan pada icon. Pada baris 4, kita menentukan ukuran icon tersebut yaitu dengan menggunakan object GSize(). Pada baris 5 kita menentukan titik anchor icon yaitu dengan menggunakan object GPoint(). Pada baris 5, kita menentukan titik koordinat bagi kota informasi untuk marker dengan menggunakan object GPoint().

Kemudian pada baris 7 kita membuat variabel marker yang merupakan object GMarker() pada koordinat yang ditentukan oleh variabel point dengan menggunakan icon yang ditentukan oleh variabel icon.

Kemudian pada baris 8 kita mendefinisikan variabel html yang merupakan kombinasi “<pre>” dan variabel label yang diambil dari parameter function dan diakhiri lagi dengan “</pre>”.

Pada baris 9 kita mendaftarkan event baru dengan bantuan object Gevent.addListener untuk object marker pada event “click”. Hal yang dilakukan ketika object marker menerima mouse click adalah menjalankan function yang berisi perintah marker.openInfoWindowHtml(). Akibatnya ketika marker tersebut di-click maka akan muncul kotak informasi yang bersesuaian untuk marker tersebut.

Akhirnya kita pada baris 11-12 menyimpan marker yang baru terbuat tersebut pada variabel array JavaScript markers[] dan label untuk kotak informasinya pada variabel array JavaScript htmls[]. Kedua variabel ini kita perlukan pada saat user interface hendak memilih satu dari sekian banyak marker yang ada di atas peta Google Map.

Pada baris 13 function mengeluarkan hasil yaitu object marker yang bertipe GMarker yang baru saja dibuat di atas.

List pilihan object yang dipantau

Sesuai spesifikasi yang diinginkan, kita perlu membuat list box yang berisi daftar benda bergerak yang ingin kita pantau. Dari list ini dapat dipilih salah satu kemudian ketika kita klik tombol Zoom To maka tampilan peta Google Map akan mengarah ke koordinat dari benda bergerak tersebut.

Berikut adalah source code untuk membuat listbox yang mengambil data dari tabel lastpos.

<div id="controller" style="position:absolute; left:400px; top:10px">
<form>
    <select name="unit_id" multiple>
    <?
    mysql_connect("localhost","root","");
    mysql_select_db("dijexi_gps");
    $sql="select concat(unit_id,’|',lat,’|',lon), unit_id from lastpos order by id asc";
    $rs = mysql_query($sql) or die(mysql_error());
    while ($row=mysql_fetch_row($rs))
    {
        echo "<option value =’" . $row[0] . "’>" . $row[1];
    }
    ?>
    </select>
    <p>
    <input type="button" value="Zoom To"  onClick="zoomTo(this.form.unit_id.selectedIndex ,this.form.unit_id.value)">
</form>
</div>

Perhatikan baris-baris yang berhuruf tebal, yaitu kode-kode PHP untuk mengambil data dan menampilkannya menjadi listbox. Pada baris 5 kita mendefinisikan perintah SQL yang akan dikirimkan ke MySQL untuk menghasilkan data yang terdiri dari 2 kolom yaitu :

  1. yang berisi data gabungan dari field unit_id, lat, dan lon yang disambung dengan karakter pipe “|”, disini kita menggunakan function MySQL CONCAT(). Kolom ini akan digunakan sebagai indentifikasi dari item yang dipilih pada list box yaitu sebagai “value” dari listbox tersebut
  2. field unit_id, yang akan digunakan sebagai label dari listbox

Baris 7-11 adalah perintah PHP untuk mengeluarkan semua data hasil query dari SQL tersebut sehingga membentuk perintah HTML yang menampilkan listbox seperti spesifikasi.

Baris 15-17 adalah perintah HTML untuk menampilkan tombol “Zoom To” yang memiliki sifat ketika di-klik akan menjalankan function JavaScript zoomTo() dengan parameter index dari item yang dipilih pada listbox dan value dari item tersebut. Value dari item tersebut adalah gabungan dari unit_id, lat, dan lon yang dipisahkan oleh tanda pipe “|”.

Berikut ini adalah function zoomTo() yang diperlukan di atas.

function myclick(i)
{
    markers[i].openInfoWindowHtml(htmls[i]);
}

function zoomTo(index, unit_id){
    if(unit_id=="") {
        alert(‘Please select Unit ID’);
        return ;
    }
    var temp = new Array();
    temp = unit_id.split(‘|’);
    var p=new GLatLng(parseFloat(temp[1]), parseFloat(temp[2]));
    map.setCenter(p,13);
    myclick(index);
}

Perhatikan pada baris 5, kita mendefinisikan function zoomTo(). Function ini akan dipanggil oleh tombol “Zoom To” yang akan mengakibatkan peta Google Map memiliki titik tengah sama dengan koordinat benda yang dipilih dan melakukan zoom pada level tertentu.

Pada baris 7-10 dilakukan pengecekan apakah variabel parameter unit_id ada isinya yaitu apakah sebelumnya user telah memilih salah satu item dari listbox. Jika belum maka langsung keluar dari function ini.

Pada baris 12-13 kita mendefinisikan variabel array temp untuk menampung data hasil pemisahan variabel unit_id dengan karakter pipe “|”. Hasilnya adalah variabel temp yang memiliki 3 elemen array yaitu unit_id, latitute, dan longitude.

Pada baris 14, kita membuat variabel object p yang berjenis GLatLng() dengan parameter temp[1] dan temp[2] yaitu lat dan lon yang sebelumnya telah di konversi menjadi tipe data float oleh function parseFloat().

Pada baris 15 kite menentukan titip pusat dari peta Google Map menjadi koordinat yang variabel p yang sama dengan koordinat item yang dipilih dengan level zoom 13. Akibatnya peta akan bergeser dan menampilkan marker tepat di tengah-tengah peta.

Pada baris 18 kita memanggil function myClick() dengan parameter index yaitu variabel yang diperoleh dari parameter function zoomTo(). Variabel ini adalah index dari item list box yang dipilih oleh user.

Function myClick() berguna untuk menampilkan kotak informasi pada suatu marker yaitu dengan memanggil method openInfoWindowHtml() pada marker tersebut. Kalau kita ingat pada function createMarker() kita telah mengisi variabel array markers[] dan htmls[] dengan object marker dan informasi label masing-masing marker.

Pada function myClick() ini array tersebut dipanggil lagi dengan menggunakan index yang diambil dari index listbox. Hal yang perlu diperhatikan adalah index dari array markers[] dan htmls[] harus mengacu ke index yang sama dengan yang ada pada listbox, yaitu pada saat mendefinisikan perintah SQL pada saat memanggil data dari tabel lastpos.

File viewer.php selengkapnya

Berikut ini adalah source code file viewer.php seperti yang telah dibahas di atas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</a>>
<html xmlns="<a href="http://www.w3.org/1999/xhtml"">http://www.w3.org/1999/xhtml"</a>>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Sistem Pemantau GPS Tracking</title>
<script src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=abce" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map = null;
var timeOut=null;
var markers=[];
var htmls=[];

function load() {
     if (GBrowserIsCompatible())
     {
         map = new GMap2(document.getElementById("map"));
         map.setCenter(new GLatLng(-6.8790, 107.63520), 12);
         map.enableScrollWheelZoom();
         map.addControl(new GSmallMapControl());
         map.addControl(new GMapTypeControl());
        refreshMarkers();
     }
}

function refreshMarkers(){
    clearTimeout(timeOut);
    GDownloadUrl("data.xml", function(data, responseCode) {
        var fetch=0;
        window.status= responseCode + ':' + fetch++;
        if(responseCode != 200)
        {
            return;
        }

        for (var i=0; i<markers.length; i++)
        {
            map.removeOverlay(markers[i]);
        }

        var xml = GXml.parse(data);
        var xmarkers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < xmarkers.length; i++)
        {
            var label = xmarkers[i].getAttribute("label");
            var point = new GLatLng(
                 parseFloat(xmarkers[i].getAttribute("lat")),
                 parseFloat(xmarkers[i].getAttribute("lon")));
            map.addOverlay(createMarker(point, i, label) );
         }
    });

    timeOut=setTimeout("refreshMarkers()",5000);
}

function createMarker(point, index, label) {
    var icon = new GIcon();
    var marker = new GMarker(point );
    var html= "<pre>"+label+"</pre>";
    GEvent.addListener(marker, "click", function() {
         marker.openInfoWindowHtml(html);
    });
    markers[index]=marker;
    htmls[index]=html;
    return marker;
}

function myclick(i) {
    markers[i].openInfoWindowHtml(htmls[i]);
}

function zoomTo(index, unit_id){
    if(unit_id=="") {
        alert('Please select Unit ID');
        return ;
    }
    var temp = new Array();
    temp = unit_id.split('|');
    var p=new GLatLng(parseFloat(temp[1]), parseFloat(temp[2]));
    map.setCenter(p,13);
    myclick(index);
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 400px; height: 400px">Loading</div>
<div id="controller" style="position:absolute; left:400px; top:10px">
<form>
    <select name="unit_id" multiple>
    <?
    mysql_connect("localhost","root","");
    mysql_select_db("dijexi_gps");
    $sql="select concat(unit_id,’|',lat,’|',lon),unit_id from lastpos order by id asc";
    $rs = mysql_query($sql) or die(mysql_error());
    while ($row=mysql_fetch_row($rs))
    {
        echo "<option value =’" . $row[0] . "’>" . $row[1];
    }
    ?>
    </select>
    <p>
    <input type="button" value="Zoom To" onClick="zoomTo(this.form.unit_id.selectedIndex ,this.form.unit_id.value)">
</form>
</div>
</body>
</html>

Preview Aplikasi

Berikut ini tampilan aplikasi Pemantau GPS Tracking:

Aplikasi Pemantau GPS Tracking

Pada artikel selanjutnya kita akan membahas mengenai aplikasi J2ME yang ditanam di handphone Nokia N95 supaya dapat mengirimkan data posisi GPS nya ke server GPS tracking kita.

Artikel terkait:

Akhmad Daniel Sembiring

vITraining.com – Qualified IT Products, Outsourcing, and Services
Ligarwangi.com – Linux, E-book, Coffee, Gift, etc

  • Share/Bookmark
  1. September 6th, 2009 at 15:48 | #1

    mas,

    source u.php

    sama

    sistem di hap nya mana….

  2. September 7th, 2009 at 08:07 | #2

    mas trikarai
    sudah saya tambahkan di bagian sebelumnya
    http://www.dijexi.com/2009/07/membuat-sistem-gps-tracking/

    thanks ya

  3. bondy the great
    September 9th, 2009 at 12:39 | #3

    mas ijin kopas code viewer.php ya untuk baca2
    sori kalau udah dibahas, coz baru baca sekilas, di googlemap nya ga ngegambar garis track nya (waypoint?) ya?

    aku lagi maen2 gps dan ngegambar track di sini http://www.a-trip.com/users/home/6885
    jadi pengen tahu codingnya

    trims. saya baca2 artikel sampeyan yang lainnya

  4. September 9th, 2009 at 13:44 | #4

    ok mas, lebih ok lagi kalau di blognya dikasi link referensi .
    iya, di aplikasi ini tidak digambar tracknya.. bisa pakai
    polylines encoder kalau mau menggambar track. ada di artikel
    lainnya ttg google maps
    thx

  5. bondy the great
    September 12th, 2009 at 18:35 | #5

    kebetulan copas ke ms-word > print :D coz saya ga (belum) ngeblog.
    kembali ke sini tentu saja karena sangat menarik membaca googlemap api. gile akhirnya dapat baca2 referensi class dan fungsi api google map ternyata bejibun juga.

    mohon pencerahannya. arsitektur desain sistem tracking nya kebetulan mas daniel pakai hp yang ber-gps. spt yang sudah saya ceritakan, saya berencana ambil data gps dari alat gps receiver terpisah, dan untuk awal interface via usb (meski ada juga yang bluetooth).

    pertanyaan, ada ide bagaimana php akses ke port usb? mampu ga php akses hardware via port usb? ok mungkin naif kalau dengan php untuk ambil data dari device gps, bisa kasih ide dengan bahasa pemrograman apa yang mudah akses ke hardware device? java?

    tentang menggambar polyline sbg waypoint untuk melihat ‘jejak’ saya pikir dengan fungsi refreshMarker() juga udah bisa menunjukkan markernya yang ‘berjalan’ ya. cool! menarik.. ditunggu artikel hack gps device to google map yang lebih lanjut. thx again

  6. October 23rd, 2009 at 09:47 | #6

    bagaimana cara memasukan data lokasinya..????

  7. October 23rd, 2009 at 20:29 | #7

    di hp diinstall program j2me yg otomatis mengupload data gps ke server. di server data tsb ditangkap dan dimasukkan ke tabel tracks

  8. hary
    October 30th, 2009 at 06:04 | #8

    mn artikel selanjutnya ?

  9. November 1st, 2009 at 01:22 | #9

    Salam kenal Mas Akhmad Daniel,

    Tulisannya sangat menarik, kebetulan saya sedang membuat skripsi mengenai GPS Tracking dengan aplikasi pemantauan melalui web (web-based), kurang lebih aplikasinya seperti ini : http://itrack.iqios.com/
    Apakah aplikasi yang Mas tulis bisa dijadikan acuan untuk membuat web tracking system seperti itu ? Mas, boleh minta link referensinya ? Googling blm nemu yang spesifik.

    Terima kasih banyak Mas, ditunggu update tulisannya.

    Salam,
    Dadan Darmawan

  10. November 2nd, 2009 at 08:52 | #10

    @dadan, thanks. Bisa dijadikan dasar utk applikasi spt tsb. sumbernya bisa dari bofan.cc, demo di livegts.com. Yang sy tuliskan disini cuma sbg panduan basic saja, devicenya menggunakan hp, sementara nantinya device menggunakan GPS Tracking device yang koneksimnay ke server menggunakan socket TCP/UDP.

  11. November 2nd, 2009 at 23:37 | #11

    Ok Mas Akhmad terimakasih atas penjelasanya. Salam

  12. trikarai
    February 9th, 2010 at 12:59 | #12

    klo pembuatan aplikasi j2me ??

  13. Thursana
    February 25th, 2010 at 05:28 | #13

    wah,,,mantapss ney,,
    minta ijin copy paste y bwat coba2 n blajar,,

    thanks alot,, :)

  1. No trackbacks yet.
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.