Contoh LocationPicker Android Tanpa GMap API Sampai Bisa Menampilkan Alamat Penuh

LATAR BELAKANG
LocationPicker dalam Android adalah sebuah fitur yang memberikan layanan untuk mendapatkan lokasi dari pengguna melalui mark yang diberikan pengguna pada halaman google maps yang ditampilkan. Saat ini fitur ini menjadi kebutuhan pada berbagai software. Namun saat ini karena berbayar terkadang menjadi hambatan untuk menghadirkan fitur ini.
PEMBAHASAN
Tapi bukan orang Indonesia kalau tidak bisa mengakali. Programmer dari Indonesia dengan akun github Ibnux membuat library android yang menyediakan fitur LocationPicker bahkan sekarang ada juga fitur mengambil jarak tempuh yang mana bisa dimanfaatkan untuk pengembangan aplikasi bertema ojek online. Namun fitur original LocationPicker ini hanya mengambil koordinat saja jadi untuk mendapatkan alamat lengkap perlu beberapa langkah tambahan lagi. Pada artikel ini penulis membahas tutorial implementasi LocationPicker Ibnux ditambah cara agar bisa menampilkan alamat lengkap.Github :
Location-Picker
PERSIAPAN
-
atur - build.gradle - root
Atur build.gradle yang ada pada folder root projek sesuai panduan pada github LocationPicker, contoh hasilnya seperti dibawah ini.allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
-
atur - build.gradle - app
Atur build.gradle yang ada pada folder app projek sesuai panduan pada github LocationPicker yaitu dengan menambahkan dependencies :implementation 'com.github.ibnux:Location-Picker:1.9'
-
Flow
Flow Mendapatkan Alamat Dari LocationPicker kurang lebih flow dari tutorial pada artikel ini adalah seperti dibawah ini :
SOURCE CODE
-
Memanggil LocationPicker
Cara memanggilnya sebetulnya sudah ada pada github LocationPicker namun ternyata class yang ada pada dokumentasi berbeda dengan class yang ada pada library update terakhir yaitu MapsPickerActivity menjadi LocationPickerActivity. Contoh penerapannya dibawah ini, LocationPicker dipanggil melalui trigger saat Button diklik.@Override public void onClick(View view) { if(view == binding.btnCariLokasi){ Intent locationPickerIntent = new Intent(appContext, LocationPickerActivity.class); appActivity.startActivityForResult(locationPickerIntent, 4268); } }
-
Menerima Result LocationPicker
Cara menerima result seperti umumnya bisa dilihat contohnya seperti dibawah ini :@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK) { if (requestCode == 4268){ setInformasi(data); } } }
-
Mengambil Alamat Lengkap Dengan Android Geocoder
Cara mengambil alamat lengkap berbekal dari Latitude dan Longitude dari LocationPicker adalah menggunakan fungsi dari class Geocoder yang sudah bawaan SDK Android sehingga tidak perlu setting - setting khusus untuk bisa menggunakannya. Contoh penggunaanya seperti dibawah ini :public void setInformasi(Intent data){ String lat = data.getStringExtra("lat"); String lon = data.getStringExtra("lon"); double latitude = Double.parseDouble(lat); double longitude = Double.parseDouble(lon); Geocoder geocoder = new Geocoder(appContext, Locale.getDefault()); try { List<Address> addressList = geocoder.getFromLocation(latitude, longitude, 1); if (addressList != null && addressList.size() > 0) { Address address = addressList.get(0); bindView(address); } } catch (IOException e) { Log.e("Location Address Loader", "Unable connect to Geocoder", e); } }
-
Menampilkan hasil ke tampilan
Pada bagian ini penulis menggunakan fitur viewBinding dari Android, contohnya seperti dibawah ini. Artikel penggunaan viewBinding ada disini.private void bindView(Address address){ binding.etAlamat.setText(address.getAddressLine(0)); binding.etJalan.setText(address.getThoroughfare()); binding.etDesa.setText(address.getSubLocality()); binding.etKecamatan.setText(address.getLocality()); binding.etKabupaten.setText(address.getSubAdminArea()); binding.etProvinsi.setText(address.getAdminArea()); binding.etNegara.setText(address.getCountryName()); }
KESIMPULAN :



Cara mengambil alamat penuh ini menurut penulis, Kode Pos dan Nama Jalan akan lebih baik menggunakan form yang diisi manual oleh pengguna karena ternyata berdasarkan ujicoba penulis Kode Pos ini sering kali salah dan Nama Jalan akan menjadi Unnamed Road seperti pada screenshoot diatas kalau tidak mempunyai nama.
Jika mengalami masalah dan ada pertanyaan silakan tanyakan pada penulis melalui sosial media penulis melalui widget pada header situs ini yang.
Link Github Projek Artikel ini :
Link Github Projek Artikel ini :
15 komentar
Mohon Penjelasan, kalo bisa di sertai Link Implementasi nya yaa Gan ...
Trimakasih Ilmunya
gan, saya butuh yang seperti LINK diatas
tapi pakai LOCATION PICKER ...
Trimakasih bantuannya
Nah masalah saya pas udah dapat lokasi dan koordinat nya
Bagaimana cara untuk saat membuka maps nya lagi posisi nya langsung berada di lokasi yg sudah di pilih tadi gan
https://stackoverflow.com/questions/2662531/launching-google-maps-directions-via-an-intent-on-android
saya sebetulnya pernah buat tapi belum sempat buat share.