Halo! Kali ini tutorialnya pakai Bahasa Indonesia, ntaran aja diterjemahinnya wkwk.
Kalau melihat aplikasi transportasi kekinian, pasti ada skenario pilih alamat dari peta yang kita drag. Tutorial ini akan membahas gimana caranya bikin kayak gini:
Di fragment! Soalnya agak susah nyari tutorial di fragment hari gini (?) Kalau mindahin ke activity sepertinya lebih gampang menurut saya ._.
Postingan ini dicomot-comot juga dari StackOverflow
Baru kemaren saya ngerjain proyek yang pakai begituan. Awalnya kagok banget ngerjainnya, soalnya gak pernah bikin yang seperti itu sebelumnya, dan tutorial di internet juga banyak yang “gagal” karena berbagai alasan :’) Baiklah mari kita mulai!
Flow kita (dapat alamat dari drag peta) adalah sebagai berikut:
- Pertama biar keren kita dapatin dulu lokasi user buat jadi start awalnya
- User drag peta
- Dari drag tersebut, kita ambil centernya peta di mana, terus kita dapat latitude dan longitudenya
- Nah, dari sini sebenarnya ada 2 cara buat dapatin alamat dari koordinat tadi:
- Pakai Geocoder Android APInya si Google Maps: unstable. Saya pakai ini pertama kemaren dan gak dapat alamatnya. Mungkin karena internet hp jelek juga sih…
- Pakai Google Maps Geocoder API yang web. Formatnya
http://maps.googleapis.com/maps/api/geocode/json?latlng=latitude,longitude.
Cobain deh. Oiya ini kita asumsiin jalannya pasti ada. Lagi males.
- Kita pakai cara yang kedua ya. Berarti, kita ambil objek JSONnya terus kita parse deh, dapatin formatted addressnya. Gituu, Buat networknya misal kita pake Volley. Duh lagi males pake Gson jadi kita pakai yang biasa aja ya.
- Udah deh, dapat formatted addressnya. Yeawwwww
Mari mulai ngoding. Saya asumsikan Anda-Anda sekalian sudah bikin project baru.
Buat Google Maps API Key
Tambahin permission di tag manifest sama API key yang tadi udah dibuat di tag application AndroidManifest.xml:
Import dependencies yang kita butuhkan: Google Maps sama Volley. Tambahkan
di dalam tag dependencies. Sync dulu habis itu.
Oiya, ini activity_main.xml saya (ikutin aja):
Dan MainActivity.java nya:
Sekarang kita akan buat fragmentnya. Download gambar markernya di sini, masukin ke drawable. Sekarang kita buat fragment_pick_location.xml
Sama buat PickLocationFragment.java
Tadaaa
Kalau di proyek kemaren sih saya ada tambahan fitur lain yaitu search berdasarkan nama jalan atau tempat juga. Nanti-nanti deh dibikin tutorialnya ya.
Sedih kalau ngingat di blog lama juga banyak tutorial. Tapi yaudah direlain aja deh, memulai lembaran baru (?) Dadaaah!