Anda di halaman 1dari 5

Integrasi dengan Google Map

Pertama, Install Google Play Service SDK, jika sebelumnya sudah mengerjakan tutorial tentang
GPS maka SDK ini harusnya sudah diinstall.

Buat project baru, pilih activity map (gambar bawah)

Akan dihasilkan google_maps_api.xml. Perhatikan dibagian comment dalam file tersebut, ada
petunjuk untuk mendapatkan Google Map key. Hanya dengan key ini kita dapat menampilkan
Google Map. Copy paste URL link yang ada di comment (gambar bawah) ke browser.

<!--
TODO: Before you run your application, you need a Google
Maps API key.

To get one, follow this link, follow the directions and


press "Create" at the end:

https://console.developers.google.com/flows/enableapi?apiid
=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=.....

Ikuti petunjuk, dan anda akan mendapatkan google map key. Jangan share key ini pada orang
lain. Setelah mendapatkan key, isi Google map key dengan key yang dihasilkan sebelumnya
(ganti bagian “YOUR KEY HERE”).
<string name="google_maps_key" templateMergeStrategy="preserve"
translatable="false">AIz ... </string>

Sekarang coba jalankan program. Tunggu beberapa saat, maka akan muncul hasil seperti ini.

Sekarang kita akan mengganti agar peta kampus UPI yang akan muncul. Buka MapsActivity.java
Dapat dilihat method onMapReady, method ini akan dipanggil saat peta sudah siap digunakan.

Sekarang kita ingin mengganti lokasi agar marker di GIK dan kamera ada di wilayah UPI.

Catatan: saat menggunakan LatLngBounds parameter pertama adalah koordinat kiri bawah dan
parameter kedua adalah koordinat kanan atas (jangan terbalik).

@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;

//batas lokasi UPI


//urutan harus kiri bawah, kanan atas kotak

//marker gedung ilkom


LatLng gedungIlkom = new LatLng(-6.860418, 107.589889);
mMap.addMarker(new MarkerOptions().position(gedungIlkom).title("Marker di GIK"));

//zoom ke gedung ilkom


mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(gedungIlkom, 17));

Maka hasilnya akan seperti ini:

Dapat juga digunakan wilayah (bound), code berikut akan membuat camera yang menampilkan
wilayah UPI sesuai batas yang didefinisikan.

// batas UPI, kiri-bawah dan kanan-atas (urutan harus spt itu)


LatLngBounds UPI = new LatLngBounds(
new LatLng(-6.863273, 107.587212),new LatLng(-6.858025, 107.597839));

// Set kamera sesuai batas UPI


int width = getResources().getDisplayMetrics().widthPixels;
int height = getResources().getDisplayMetrics().heightPixels;
int padding = (int) (width * 0.12); // offset dari edges
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(UPI, width, height, padding));

Detail tentang kamera dapat dibaca di:


https://developers.google.com/maps/documentation/android-api/views

Detail tentang marker dapat dibaca di:


https://developers.google.com/maps/documentation/android-api/marker
Menampilkan Lokasi Device di peta
Sekarang kita akan menggabungkan tutorial sebelumnya (pengambilan lokasi terakhir,
pengambilan secara lokasi terus menerus) agar lokasi terakhir dapat muncul di peta.

Impor android.Manifest (jika tidak, Manifest.permission.ACCESS_FINE_LOCATION tidak


akan dikenal)

import android.Manifest;

Tambahkan berbagai interface yang diperlukan, sesuai tutorial sebelumnya untuk mengambil
lokasi terakhir.

public class MapsActivity extends FragmentActivity implements


OnMapReadyCallback,
LocationListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {

implementasikan method interface tersebut sesuai tutorial sebelumnya, jangan lupa termasuk
onStart, onStop, onRequestPermissionsResult dan sebagainya.

Tambahkan variabel berikut untuk menyimpan marker lokasi sekarang:

private Marker mPosSekarang;

Tambahkan marker lokasi sekarang saat peta sudah siap:

@Override
public void onMapReady(GoogleMap googleMap) {
...
LatLng posSekarang = new LatLng(-6.860418, 107.589889);
mPosSekarang = mMap.addMarker(new
MarkerOptions().position(posSekarang).title("PosSekarang"));
...
}

Pada saat lokasi berganti, update posisi marker:

@Override
public void onLocationChanged(Location location) {
AlertDialog ad = new AlertDialog.Builder(this).create();
ad.setMessage("update lokasi");
ad.show();
mPosSekarang.setPosition(new LatLng(location.getLatitude(),location.getLongitude()));
}
Jika anda tidak berada di sekitar UPI, silahkan sesuaikan camera (lokasi dan zoom):

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(..., ... ));

Latihan:

Buat game mirip pacman sederhana, tambahkan beberapa marker di sekitar Anda. Jika device
berada di sekitar lokasi tersebut maka marker akan menghilang (dimakan). Silahkan tambahkan
berbagai variasi gambar, animasi marker dan skor (skor bertambah jika marker menghilang).