= | =
Monday, September 3, 2012

Membuat Applikasi Mobile Map(Peta) Sederhana dengan J2ME WirelessToolkit

Sekilas tentang PEMETAAN Mobile Google Maps
Mobile Google Maps (MGMaps) merupakan sebuah aplikasi gratis yang dapat digunakan untuk menampilkan peta dari Google Maps, Yahoo! Maps, Open Street map, dan beberapa sumber peta lain pada perangkat mobile yang mendukung j2me. Anda dapat mengunduh secara gratis dan menyimpannya di kartu memori anda untuk digunakan secara offline.
MGMaps didistribusikan di bawah lisensi Creative Commons License (http://creativecommons.org/licenses/by-nc-nd/2.5/). Dapat diunduh, digunakan, dan disebarkan tanpa dikenakan biaya lisensi bila untuk tujuan pribadi (bukan komersil). MGMaps dapat diunduh melalui perangkat mobile dengan mengakses http://wap.mgmaps.com. Berikut adalah beberapa fitur utama MGMaps :
1.Konektivitas GPS
2.Pencarian tempat menarik atau bisnis
3.Bookmark
4.Peta atau gambar satelit
5.Mobile WikiMapia
6.Menampilkan file .KML
7.Peta Subway
Dukungan Perangkat
1. J2ME : MIDP 2.0 CLDC 1.1. Contoh grup perangkat : Nokia S40, S60, SonyEricsson JP3+, SJP 3+, Windows Mobile, Esmertec dan Sun JVMs, Samsung, Motorola.
2. Blackberry UIApplications API ( OS versi 4.0 atau lebih baru ).
3. Google Andorid.
Referensi lengkap tentang merek dan tipe ponsel yang telah didukung MGMaps, dapat dibaca di http://www.getjar.com/mobile/6949/mobile-gmaps/?s=phones.
SDK MGMAPS
SDK MGMaps menyediakan lingkungan pengembang aplikasi pemetaan mobile berbasis Java. API ini memungkinkan anda untuk menambah fitur pemetaan mobile dengan mudah ke aplikasi Java ME, Android, dan Blackberry.
Agar dapat menggunakan library ini ke dalam aplikasi, anda perlu license key ( http://www.nutiteq.com/generate_key.html. ), untuk mendapat license key ini, anda diwajibkan registrasi dulu. Selanjutnya, anda akan diminta memasukkan nama aplikasi ( yaitu nama midlet ) dan vendor ( yaitu nama vendor ).
Perangkat Lunak Pendukung
1. SDK Java 1.6+ ( http://www.java.com/en/download/index.jsp ).
2. IDE Java Netbeans atau Eclipse.
3. Sun Wireless Toolkit 2.5.2
4. untuk Blackberry sesuai paket JDE atau Blackberry Eclipse SDK
5. untuk Android SDK dari Google, atau plug-in Eclipse
API Mapcomponent
Map component menyediakan API utama untuk manipulai dan menampilkan Peta. Diasumsikan bahwa Aplikasi Pemetaan Mobile mempunyai fungsi berikut :
1. Menampilkan Peta interaktif ( Zoom dan Geser ).
2. Aplikasi Menampilkan objek tertentu yang ditandai, data dimuat secara online dari server aplikasi
3. pengguna dapat memilih sebuah tanda dan menmpilkan informasi detailnya.
Dari sudut pandang library pemetaan, berikut langkah umum yang diperlukan :
1. Buat objek Peta, kemudian dihubungkan ke canvas grafis.
2. Tangani ( handle ) pergeseran Peta ( definisikan kode tombol).
3. Tambahkan penanda ( marker ) pada Peta.
4. Tangani pemilihan tanda.
5. Selesai menggunakan Mapcomponent ( nonaktifkan object).
Diagram Alir :
ss
Penyedia Layanan Peta Berbasis Web
1. Google Maps ( http://maps.google.com )
2. Yahoo!Maps ( http://map.yahoo.com )
3. OpensStreet (http://www.openstreet.org)
4. Cloudmade ( http://maps.cloudmade.com )
Komponen untuk Library pemetaan
1. Mapitem merupakan antarmuka pengguna (UI) yang dapat diatur sesuai keinginan (customable). Tidak mempunyai kontrol terhadap beberapa kejadian seperti penekanan    tombol. Hanya dapat mengatur garfis layar dalam batas sebuah form.
2. MapComponent memungkinkan anda untuk membuat peta interaktif ke sebuah canvas. Komponen ini memungkinan untuk menerima seluruh kejadian penekanan tombol dan lain-lain.
3. BasicMapComponent merupakan tingkat terbawah dari interaksi komponen peta, komponen ini tidak mendefinisikan standar peta.
Download file library pemetaan disini (untuk mendownload-nya terlebih dulu kita harus registrasi),ketik script berikut lalu simpan dengan nama “namafile.java” (tanpa tanda petik). jalankan Java Wireless Toolkit, lalu buat project baru dengan nama project FirstMap dan nama kelas midlet FirstMap. Simpan file tadi difolder src dan simpan file library pemetaan yang sudah di download tadi di folder lib pada file project.
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import java.io.IOException;
import com.nutiteq.MapItem;
import com.nutiteq.ui.DefaultCursor;
import com.nutiteq.utils.Utils;
import com.nutiteq.components.WgsPoint;
import com.nutiteq.controls.ControlKeys;
import com.nutiteq.controls.OnScreenZoomControls;
import com.nutiteq.components.OnMapElement;
import com.nutiteq.components.Place;
import com.nutiteq.components.Line;
import com.nutiteq.components.LineStyle;
import com.nutiteq.listeners.OnMapElementListener;
import com.nutiteq.kml.*;
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;
public class FirstMap extends MIDlet implements CommandListener, OnMapElementListener {
private Form mMainForm;
private MapItem mapItem;
private Image icon;
private StringItem message;
private Display display;
public FirstMap() {
mapItem = new MapItem(“”, “MeongMap”, this, 200, 200, new WgsPoint( 24.764580,     59.437420), 12);
mMainForm = new Form(“Mobile GIS dengan MGMaps”);
}
public void elementClicked(final OnMapElement p) {
message.setText(“Diklik nama tempat: ” + p.getLabel().getLabel());
}
public void elementEntered(final OnMapElement p) {
message.setText(“Dimasukkan nama tempat: ” + p.getLabel().getLabel());
}
public void elementLeft(final OnMapElement p) {
message.setText(“Meninggalkan nama tempat: ” + p.getLabel().getLabel());
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
mapItem.defineControlKey(ControlKeys.MOVE_UP_KEY, Canvas.KEY_NUM2);
mapItem.defineControlKey(ControlKeys.MOVE_DOWN_KEY, Canvas.KEY_NUM8);
mapItem.defineControlKey(ControlKeys.MOVE_LEFT_KEY, Canvas.KEY_NUM4);
mapItem.defineControlKey(ControlKeys.MOVE_RIGHT_KEY, Canvas.KEY_NUM6);
mapItem.defineControlKey(ControlKeys.ZOOM_IN_KEY, Canvas.KEY_POUND);
mapItem.defineControlKey(ControlKeys.ZOOM_OUT_KEY, Canvas.KEY_STAR);
mapItem.defineControlKey(ControlKeys.SELECT_KEY, -5);
final Canvas canvas = new Canvas() {
protected void paint(Graphics arg0) {
}
};
final boolean pointer = canvas.hasPointerEvents();
if (pointer) {
mapItem.setOnScreenZoomControls(new OnScreenZoomControls(Utils .createImage(OnScreenZoomControls.DEFAULT_ZOOM_IMAGE)));
} else {
mapItem.setCursor(new DefaultCursor(0xFFFF0000));
}
try {
icon = Image.createImage(“/nutiteq.png”);
} catch (IOException e) {
}
mapItem.addPlace(new Place(1, “Meong”, icon, 24.764580, 59.437420));
final WgsPoint[] linePoints = {
new WgsPoint(24.76382468302337, 59.44325151314919),
new WgsPoint(24.76344295658494, 59.4462352840583),
new WgsPoint(24.76593650384734, 59.44530921763007),
new WgsPoint(24.76804665483925, 59.44616268729941),
new WgsPoint(24.76810500478219, 59.443291656657) };
final Line line = new Line(linePoints, new LineStyle(0xFF0000, 5));
mapItem.addLine(line);
mapItem.setOnMapElementListener(this);
mapItem.addKmlService(new KmlUrlReader( “http://www.panoramio.com/panoramio.kml?LANG=en_US.utf8″, true));
// 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(gpsPresentImage,4,16), new PlaceIcon(gpsConnectionLost, 4, 16), 3000, true);
//   dataSource.setLocationMarker(marker);
//    mapItem.setLocationSource(dataSource);
//}  catch (final IOException e) {
// }
//}
mMainForm.append(new StringItem(null, “Mobile GIS dengan MGMaps”));
mMainForm.addCommand(new Command(“Exit”, Command.EXIT, 0));
mMainForm.setCommandListener(this);
mMainForm.append(mapItem);
message = new StringItem(“”, “”);
mMainForm.append(message);
display = Display.getDisplay(this);
display.setCurrent(mMainForm);
mapItem.startMapping();
}
public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}
}
Klik Build dan klik Run pada window maka akan tampil Emulator HandPhone
ss
Sumber : http://energi-id.org/membuat-aplikasi-mobile-map-di-j2me/

0 komentar:

Thank's All

Time is Money

Content Blog

Adsense Indonesia
TUKERAN LINK
dendymarfian.blogspot.com

Tukeran Link Yuk...!
Silahkan copy kode di atas...!

dendy blog's. Powered by Blogger.
SEO Stats powered by MyPagerank.Net