Lokasi tengah pada peta juga didefinisikan dengan koordinat latitude dan longitude WGS84. Geser peta ke lokasi GPS saat ini , asumsikan bahwa ponsel Anda terdapat GPS internal , atau dukungan Java Location API (JSR-179) dengan GPS eksternal ( misal , Nokia s60 v3 ). Terdapat beberapa cara untuk mendapatkan lokasi pengguna melalui pustaka MGMaps :
- Dukungan JSR-179 API .
- Bluetooth GPS.
- Penentuan posisi Cell-ID ( bekerja pada beberapa ponsel , seperti ponsel Java SonyEricsson).
1. Import paket lokasi ke MIDlet.
import com.nutiteq.location.LocationMarker ;
import com.nutiteq.location.LocationSource ;
import com.nutiteq.location.providers.LocationAPIProvider ;
import com.nutiteq.location.NutiteqLocationMarker ;
import com.nutiteq.components.PlaceIcon ;
2. Definisikan sumber lokasi (provider standar , JSR-179) , dan tipe khusus sebuah objek (LocationMarkers) untuk menampilkan lokasi GPS pada peta . Perlu di catat bahwa beberapa gambar di perlukan untuk menampilkan penanda .
if(System.getProperty("microedition.location.version") !=null) {
final LocationSource dataSource = new LocationAPIProvider(3000) ;
try{
final Image gpsPresentImage = Image.createImage ("/gps_marker.png") ;
final Image gpsConnectionLost = Image.createImage ("/gps_connection_lost.png") ;
final LocationMarker marker = new NutiteqLocationMarker (new PlaceIcon(gpsConnectionLost, 4, 16), new PlaceIcon(gpsConnectionLost, 4, 16) , 3000, true) ;
dataSource.setLocationMarker(marker) ;
mapItem.setLocationSource(dataSource) ;
} catch (final IOException e) {} }
3.Compile dan jalankan perubahan kode anda . Perlu di catat bahwa JWTK akan menginformasi peringatan tambahan untuk mendapatkan informasi lokasi . Anda mungkin akan menjumpai peringatan bahwa JWTK memberikan 0,0 sebagai koordinat lokasi default , ini berada di samudra atlantik laut lepas nigeria . Jadi , Anda hanya akan melihat laut biru pada peta.
JWTK memungkinkan anda mengubah koordinat lokasi ,yaitu melalui menu MIDlet > External event Generator , ubah koordinat latitude dan longitude yang ada pada bagian lokasi . Tunggu beberapa saat dan perhatikan layar emulator . Jika tidak terjadi kesalahan saat mengunduh peta , maka akan ditampilkan peta dengan koordinat ( -7,792300224, 110,369903564 ) merupakan koordinat kota yogyakarta pada tingkat perbesaran 12, yang di peroleh dari OpenStreetMap.org .
4.Pada perangkat riil , anda akan mendapatkan koordinat GPS yang sesungguhnya . Satu hal yang perlu Anda perhitungkan adalah waktu yang di perlukan untuk mendapatkan lokasi fix GPS - tergantung pada GPS anda , penyedia layanan A-GPS , lokasi fisik. Biasanya waktu yang di butuhkan sekitar 30 detik sampai beberapa menit .
KEJADIAN DASAR ( BASIC EVEN )
Komponen mapItem dapat mengirim pesan ke sebuah aplikasi MIDlet berdasarkan beberapa kejadian, seperti pemilihan penanda tertentu pada peta , mengklik , menggeser , zoom peta , dan peringatan kesalahan yang mungkin terjadi pada pustaka.
1. Import Paket PlaceListener ke dalam MIDlet.
import com.nutiteq.Listener.OnMapElementListener ;
2. Definisikan tombol kontrol untuk pemilihan tempat .
mapItem.defineControlKey(ControlKeys.SELECT_KEY, -5) ;
3.Tambahkan referensi implementasi PlaceListener kedalam kelas utama MIDlet.
public class HelloMap
extends MIDlet
implements CommandListener,OnMapElementLisrener {
4. tambah satu atau lebih element ke dalam form, untuk menampilkan teks suatu tempat .
// define property for HelloMap class private StringItem message) ;
// define new item for the form , in StartApp class, set initial value message =
new StringItem(" " , " ") ;
mMainForm.append(message) ;
5.tambahkan handler aktual untuk kejadian elementClicked, elementEntered dan elementLeft . Seluruh kejadian ini akan memperbaharui pesan dalam form .Pada aplikasi real , logikanya mungkin lebih kompleks saat terjadi penekanan template (place-objek peta) , seperti menampilkan layar terpisah dengan informasi detail sebuah objek . Perlu dicatat bahwa jika OnMapElementListener di gunakan , maka keseluruhan method ini juga harus di definisikan .
public void elementClicked(final OnMapElement p) { message.setText
(clicked place name : " +
p.getLabel () .getLabel ());
}
public void elementEntered(final OnMapElement p) {
message.setText ("Entered place name : " +
p.getLabel () .getLabel ()) ;
}
Artikel Menarik :
Peluang Infopreneur