Kita mungkin sudah terbiasa menggunakan Google Maps untuk pencarian lokasi, bahkan untuk memberitahukan lokasi kita. Saking sudah familiarnya biasanya kita juga ingin mengimplementasikan atau menyisipkan sendiri Google Maps di aplikasi kita. Caranya sangat mudah apalagi saat ini Android Studio memiliki template tersebut untuk membuat Aplikasi dengan dukungan Google Map.
Langsung saja kita gunakan cara mudahnya buat satu buah project baru dengan nama Maps, next saja lalu kita tambahkan sebuah Google Maps Activity
Menambahkan Activity masrahman28.blogspot.com |
Next next saja dan Finish. Jika sudah kita akan diarahkan menuju file google_maps_api.xml
Nah kita harus membuat sebuah API Key nih untuk dapat menampilkan maps pada aplikasi kita, silahkan masuk ke https://console.developers.google.com/apis/ lalu kita masuk ke menu Kredensial, Pilih Buat Kredensial yang Kunci API maka nanti akan muncul langsung API Key yang kita harapkan seperti di bawah ini
Mendapatkan API Key masrahman28.blogspot.com |
Untuk penjelasan lebih lengkapnya mengenai mendapatkan API Key Google silahkan Baca Disini
lalu kita tinggal copy saja API Key yang kita punya ke project yang kita buat pada file google_maps_api.xml
API Key masrahman28.blogspot.com |
Dan aplikasi sudah bisa dijalankan loh, inget ya koneksi internet nya harus ON biar maps ke load. Lalu gimana lagi nih? dan Picker nya itu default ke Australia pengen berdasarkan lokasi kita saat ini. Oke sekarang saatnya kita memanfaatkan fungsi GPS dari HP kita untuk menentukan posisi yang kita nih jadi Picker yang warna merah itu engga di Australia lagi seperti pada gambar di bawah ini
Pertama kita masuk dulu ke Project Structure pilih menu app dan masuk ke Tab Dependencies. Tambahkan satu buat dependecy yaitu gms:play-services-location biasa untuk version mengikuti dengan versi-versi yang lainnya yah harus disesuaikan. Jika gradle build telah selesai kita masuk lagi ke MapsActivity lagi lalu rubah codingnya menjadi seperti di bawah ini
Google Maps masrahman28.blogspot.com |
Pertama kita masuk dulu ke Project Structure pilih menu app dan masuk ke Tab Dependencies. Tambahkan satu buat dependecy yaitu gms:play-services-location biasa untuk version mengikuti dengan versi-versi yang lainnya yah harus disesuaikan. Jika gradle build telah selesai kita masuk lagi ke MapsActivity lagi lalu rubah codingnya menjadi seperti di bawah ini
package com.example.maps; import android.Manifest; import android.content.pm.PackageManager; import android.location.Location; import android.os.Build; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; 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 GoogleApiClient googleApiClient; private GoogleMap mMap; Location location; @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; if(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1){ if(checkCallingOrSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MapsActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 88); }else{ buildGoogleApiClient(); } }else{ buildGoogleApiClient(); } } protected synchronized void buildGoogleApiClient(){ googleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(callbacks).addOnConnectionFailedListener(failed).addApi(LocationServices.API).build(); googleApiClient.connect(); } @Override public void onStop() { super.onStop(); if(googleApiClient!=null){ googleApiClient.disconnect(); } } GoogleApiClient.OnConnectionFailedListener failed = new GoogleApiClient.OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult connectionResult) { } }; GoogleApiClient.ConnectionCallbacks callbacks = new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(@Nullable Bundle bundle) { LocationRequest locationRequest = new LocationRequest(); if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { if (ActivityCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(MapsActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } } location = LocationServices.FusedLocationApi.getLastLocation(googleApiClient); LocationServices.FusedLocationApi.requestLocationUpdates( googleApiClient, locationRequest, loclisten); } com.google.android.gms.location.LocationListener loclisten = new com.google.android.gms.location.LocationListener() { @Override public void onLocationChanged(Location loc) { if (loc == null) return; location = loc; lokasirubah(location); if(googleApiClient!=null){ LocationServices.FusedLocationApi.removeLocationUpdates(googleApiClient, this); } } }; private void lokasirubah(Location location) { mMap.clear(); LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); MarkerOptions marker = new MarkerOptions(); marker.position(latLng); marker.title("Saya Disini"); mMap.addMarker(marker); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 14.0f)); } @Override public void onConnectionSuspended(int i) { } }; }
Jika sudah aplikasi google maps telah selesai kita buat. Jangan lupa untuk mengaktifkan GPS dan jengjreng lihat hasilnya.
Untuk project fullnya Download disini
Tidak ada komentar:
Posting Komentar