Praktikum X Android Location API Google Map filePraktikum X Android Location API ... • Membuat...

Post on 13-Mar-2019

256 views 0 download

Transcript of Praktikum X Android Location API Google Map filePraktikum X Android Location API ... • Membuat...

Praktikum X

Android Location API

Google Map Pokok Bahasan:

• Membuat Aplikasi Google Map

Tujuan Belajar:

Setelah mempelajari modul ini mahasiswa diharapkan mengetahui:

• Cara membuat aplikasi Google Map

• Mengenal Koordinat pemetaan (Longitude dan Latitude)

Teori Dasar

Salah satu ciri mobile phone /tablet pc adalah portabilitas, sehingga tidak mengherankan bahwa

beberapa fitur android sangat menarik seperti layanan yang memungkinkan anda menemukan, mencari

serta menvisualisasikan posisi kita ke dalam peta lokasi fisik (google maps).

Percobaan 1:

1. Buat project baru

2. Tambahkan coding berikut pada main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Latitude:"

android:textSize="20dip"/>

<TextView

android:id="@+id/txtLat"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="" />

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Longitude:"

android:textSize="20dip"/>

<TextView

android:id="@+id/txtLong"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=""

/>

</LinearLayout>

3. Tambahkan coding dibawah pada file activity:

package com.locationapi;

import android.location.Criteria;

import android.location.Location;

import android.location.LocationListener;

import android.location.LocationManager;

import android.os.Bundle;

import android.widget.TextView;

import android.widget.Toast;

import android.app.Activity;

import android.content.Context;

public class LokasiActivity extends Activity implements LocationListener {

private TextView latituteField;

private TextView longitudeField;

private LocationManager locationManager;

private String provider;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

latituteField = (TextView) findViewById(R.id.txtLat);

longitudeField = (TextView) findViewById(R.id.txtLong);

locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);

Criteria criteria = new Criteria();

provider = locationManager.getBestProvider(criteria, false);

Location location = locationManager.getLastKnownLocation(provider);

if (location != null) {

System.out.println("Provider " + provider + " has been selected.");

onLocationChanged(location);

} else {

latituteField.setText("Lokasi tidak tersedia");

longitudeField.setText("Lokasi tidak tersedia");

}

}

protected void onResume() {

super.onResume();

locationManager.requestLocationUpdates(provider, 400, 1, this);

}

protected void onPause() {

super.onPause();

locationManager.removeUpdates(this);

}

@Override

public void onLocationChanged(Location location) {

// TODO Auto-generated method stub

float lat = (float) (location.getLatitude());

float lng = (float) (location.getLongitude());

latituteField.setText(String.valueOf(lat));

longitudeField.setText(String.valueOf(lng));

}

@Override

public void onProviderDisabled(String provider) {

// TODO Auto-generated method stub

Toast.makeText(this, "Disabled provider " + provider,

Toast.LENGTH_SHORT).show();

}

@Override

public void onProviderEnabled(String provider) {

// TODO Auto-generated method stub

Toast.makeText(this, "Enabled new provider " + provider,

Toast.LENGTH_SHORT).show();

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras) {

// TODO Auto-generated method stub

}

}

4. Tambahkan 3 uses-permission berikut pada AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.locationapi"

android:versionCode="1"

android:versionName="1.0" >

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="17" />

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="com.locationapi.LokasiActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

5. Pilih DDMS > Emulator Control > ubah nilai Longitude dan Latitude > klik Send > amati

perubahan yang terjadi pada emulator.

Percobaan 2:

Persiapan Device

1. Install Google Play Service pada Android SDK manager

2. Import project yang berada dalam …sdk\extras\google\google_play_services\libproject

Dengan cara File > Import > adroid > Existing android project into workspace > browse > pilih folder

libproject tersebut.

3. Buka command prompt dan ketik:

keytool -list -v -alias androiddebugkey -keystore C:\Users\<nama user>\.android\debug.keystore -

storepass android -keypass android

4. Buka https://code.google.com/apis/console/, pilih services dan aktifkan Google Maps Android API

v2.

5. Pilih API Access > Create new Android key

6. Isi kode SHA1 yang terdapat pada cmd beserta nama package project yang akan dibuat.

7. Jalankan Android Virtual Device dan install google play service melalui cmd setelah AVD selesai

booting:

Pembuatan Program

1. Buat android project baru:

2. Tambahkan Project library yang telah didownload.

3. Activity_Main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MapActivity" >

<fragment

android:id="@+id/map"

android:name="com.google.android.gms.maps.MapFragment"

android:layout_below="@+id/btnRsj"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

<Button

android:id="@+id/btnUnsada"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/map"

android:layout_alignLeft="@+id/map"

android:onClick="onClick_Unsada"

android:text="Unsada" />

<Button

android:id="@+id/btnRsj"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="14dp"

android:onClick="onClick_Rsj"

android:text="RSJ" />

<Button

android:id="@+id/btnRagunan"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/map"

android:layout_alignRight="@+id/map"

android:onClick="onClick_Ragunan"

android:text="Ragunan" />

</RelativeLayout>

4. AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.mapapp"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="17" />

<permission

android:name="com.mapapp.permission.MAPS_RECEIVE"

android:protectionLevel="signature" />

<uses-feature

android:glEsVersion="0x00020000"

android:required="true" />

<uses-permission android:name="com.mapapp.permission.MAPS_RECEIVE" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

/>

<uses-permission

android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"

/>

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"

/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<meta-data

android:name="com.google.android.maps.v2.API_KEY"

android:value="AIzaSyAd7Pygd2Dhw19VgbfJyjk6jgurAEJsH60"/>

<activity

android:name="com.mapapp.MapActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

5. MapActivity.java

package com.mapapp;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import com.google.android.gms.maps.CameraUpdate;

import com.google.android.gms.maps.CameraUpdateFactory;

import com.google.android.gms.maps.GoogleMap;

import com.google.android.gms.maps.MapFragment;

import com.google.android.gms.maps.model.LatLng;

import com.google.android.gms.maps.model.MarkerOptions;

public class MapActivity extends Activity {

private final LatLng LOCATION_UNSADA = new LatLng(-6.229671,

106.924331); //lokasi unsada

private final LatLng LOCATION_RSJ = new LatLng(-6.168033, 106.798181);

//lokasi rsj

private final LatLng LOCATION_RAGUNAN = new LatLng(-6.309532,

106.820370); //lokasi ragunan

private GoogleMap map;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

map = ((MapFragment)

getFragmentManager().findFragmentById(R.id.map)).getMap();

map.addMarker(new

MarkerOptions().position(LOCATION_UNSADA).title("Saya kuliah disini!"));

map.addMarker(new

MarkerOptions().position(LOCATION_RSJ).title("Saya berobat kesini!"));

map.addMarker(new

MarkerOptions().position(LOCATION_RAGUNAN).title("Saya tinggal disini!"));

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is

present.

getMenuInflater().inflate(R.menu.map, menu);

return true;

}

public void onClick_Unsada(View v) {

map.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

CameraUpdate update =

CameraUpdateFactory.newLatLngZoom(LOCATION_UNSADA, 14);

map.animateCamera(update);

}

public void onClick_Rsj(View v) {

map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

CameraUpdate update =

CameraUpdateFactory.newLatLngZoom(LOCATION_RSJ, 16);

map.animateCamera(update);

}

public void onClick_Ragunan(View v) {

map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

CameraUpdate update =

CameraUpdateFactory.newLatLngZoom(LOCATION_RAGUNAN, 15);

map.animateCamera(update);

}

}

6. Jalankan Aplikasi

Bila masih bingung bisa hubungi :

Brianlasta@gmail.com