Menggunakan google play service for location pada pengembangan aplikasi android
Pada Materi ini membahas sebuah topik berupa fitur-fitur lain yang dapat digunakan di dalam android, dimana kita akan mempelajari tentang bagaimana cara menggunakan google play service for location.
Location-based service merupakan salah satu bagian yang penting di dalam pengembangan android, dimana dengan adanya service ini, aplikasi dapat melacak dan menampilkan informasi terkait lokasi kita saat ini secara mudah dan akurat. Android menggunakan beberapa metode agar lokasi pengguna dapat terlacak dengan akurat, seperti penggunaan data satelit pada Global Positioning System (GPS), melacak ID dari menara sel ketika menggunakan internet selular, atau menggunakan Wi-Fi sebagai sumber untuk melacak lokasi. Untuk memberikan akses kepada aplikasi untuk melacak lokasi, kita perlu menambahkan method android.permission.ACCESS_FINE_LOCATION dan android.permission.ACCESS_COARSE_LOCATION di dalam android studio agar aplikasi dapat mengakses lokasi kita dan melacak lokasi tersebut dengan akurat.
Berikut ini merupakan salah satu contoh penggunaan Google Maps dengan tipe categorical search:
// Search for restaurants nearby
Uri gmmIntentUri = Uri.parse(“geo:0,0?q=restaurants”);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage(“com.google.android.apps.maps”);
startActivity(mapIntent);
// Search for restaurants in San Francisco
Uri gmmIntentUri = Uri.parse(“geo:37.7749,-122.4194?q=restaurants”);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage(“com.google.android.apps.maps”);
startActivity(mapIntent);
Koding diatas merupakan contoh penggunaan Google Play Service for Location, dimana disini kita akan mencari restoran yang berada dekat lokasi kita dan juga mencari restoran yang berada dalam san Francisco. Penggunaan Uri di dalam kodingan diatas berfungsi sebagai intent dari Google Maps yang berguna untuk menentukan action yang diinginkan beserta dengan beberapa data yang dapat digunakan untuk melakukan tindakan tersebut. Penggunaan setPackage(“com.google.android.apps.maps”) di dalam kodingan diatas memastikan bahwa aplikasi Google Maps di dalam android akan menangani intent yang diimplementasikan. Terdapat perbedaan antara kodingan untuk mencari restoran terdekat dengan mencari restoran di San Fransisco, dimana pada kodingan mencari restoran terdekat, kita menetapkan longitude dan latitude dari lokasi menjadi 0 karena jika kita tidak memberikan koordinat secara spesifik, maka sistem akan mencari hasil pencarian kita dengan lokasi yang dekat dengan kita. Di sisi lain, kodingan untuk mencari restoran di San Fransisco kita berikan koordinat dari San Fransisco, dimana nantinya aplikasi akan memunculkan restoran yang ada dalam San Fransisco.
API ( application programmeing Interface ) Google Maps merupakan tools yang digunakan untuk membuat aplikasi yang dapat mengakses server Google Maps untuk menampilkan peta atau lokasi dari suatu tempat sehingga memberikan kemampuan bagi para pengembang aplikasi untuk mengakses layanan Google Maps pada aplikasi yang anda buat. Dengan menggunakan API Google Maps dapat mengakses lebih detail menegenai lokasi suatu tempat dan mengetahui jarak dari tempat satu ke tempat lainnya.
Menampilkan Maps di android studio
- Buat New project lalu pilih tamplate Google Map Activity
2. Memasukan Google Maps API key yang sudah dibuat sebelumnya, buka google_maps_api.xml pada folder /res/values.
<string name=”google_maps_key” templateMergeStrategy=”preserve”
translatable=”false”>YOUR_KEY_HERE</string>
</resources>
Menjadi :
<string name=”google_maps_key” templateMergeStrategy=”preserve”
translatable=”false”>AIzaSyDtE3g5wA0AhiqNrkGoqDRhOe6EXle_30Y
</string>
</resources>
3. Buka file MapsActivity.java
package id.web.twoh.mymapapp;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title(“Marker in Sydney”));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
}
Note : Lokasi Marker tersebut diletakan yang mengacu pada koordinat latitude dan longitude (-34, 151). Lalu memanggil method moveCamera() untuk awal masuk ke aplikasi akan dibawa ketitik yang sesuai.
Hasil :
4. Buka file app masuk ke manifest/AndroidManifests.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”com.aflowz.mygooglemaps”>
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />
<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”>
<meta-data
android:name=”com.googl.android.geo.API_KEY”
android:value=”@string/google_maps_key”/>
<activity
android:name=”.MapsActivity”
androis:label=”@strng/titile_activity_maps”>
<intent-filter>
<action android:name”android.intent.action.MAIN”/>
<category android:name=”android.intent.category.LAUNCHER”/>
</intent-filter>
</activity>
</application>
</manifest>
5. Com.google.android.geo.API.KEY tersimpan pada folder /res/values/google_maps_key.xml
<resources>
<string name=”google_maps_key” templateMergeStrategy=”preserve”
translatable=”false”>AIzaSyDtE3g5wA0AhiqNrkGoqDRhOe6EXle_30Y</string>
</resources>
6. Buka file java MapsActivity
package com.aflowz.mygooglemaps;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements
OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);}
@Override
public void onMapReady(GoogleMap googleMap){
mMap = googleMap;
LatLng sydney = new LatLng(-34,151);
m.Map.addMarker(new MarkerOptions().position(sydney).title(“Marker in Sydney”));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}}
7. Menambhakan marker dengan methode addMarker, serta menambahkan zoom in dan zoom out. Dengan buka file MapsActivity dengan memasukan fungsi onMapReady :
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng lokasi = new LatLng(-6.368150, 106.828444);
LatLng lokasi2 = new LatLng(-6.176036, 106.827429);
mMap.addMarker(new MarkerOptions().position(lokasi)
.title(“Universitas Indonesia”)
.snippet(“-6.368150, 106.828444”));
mMap.addMarker(new MarkerOptions().position(lokasi2)
.title(“Monumen Nasional”)
.snippet(“-6.176036, 106.827429)”));
mMap.moveCamera(CameraUpdateFactory.newLatLng(lokasi));
mMap.animateCamera( CameraUpdateFactory.zoomTo( 10.0f ) );
mMap.getUiSettings().setZoomControlsEnabled(true);
}}
Hasil :
Referensi:
- Carmen Delessio (2016). Sams Teach Yourself: Android Application Development in 24 Hours. Fourth Edition.
- https://developers.google.com/maps/documentation/urls/android-intents
- https://code.tutsplus.com/id/articles/android-from-scratch-google-play-services–cms-26040
- https://developers.google.com/android/guides/setup#Install
- https://www.twoh.co/2016/06/05/tutorial-membuat-aplikasi-peta-android-menggunakan-android-studio/
- https://drive.google.com/file/d/0B_ShhlKLHdOJdm1yam5idmtlTmc/view