Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Google Maps

Memulai Dengan Google Maps untuk Android: Tingkat Lanjut

This post is part of a series called Getting Started With Google Maps for Android.
Getting Started With Google Maps for Android: Intermediate
Getting Started With Google Maps for Android: Advanced

Indonesian (Bahasa Indonesia) translation by ⚡ Rova Rindrata (you can also view the original English article)

1. Perkenalan

Sementara fitur standar Google Maps sangat berguna, akan ada waktu yang ingin Anda lakukan sedikit lebih banyak. Untungnya, Google telah membuat sebuah perpustakaan open source yang berisi seperangkat utilitas yang bisa digunakan pengembang Android untuk membuat aplikasinya lebih baik lagi dengan peta yang disempurnakan.

Dalam tutorial ini, Anda akan belajar menggunakan perpustakaan utilitas ini untuk menambahkan visualisasi heat map untuk data Anda, mengumpulkan banyak penanda untuk memudahkan penayangan, dan menggunakan berbagai metode utilitas untuk bekerja dengan sifat bola di Bumi atau menggambar rute pada jalanan.

File sumber untuk tutorial ini dapat ditemukan di GitHub.

2. Persiapan

Pada tutorial pertama seri ini, saya membahas cara menyiapkan proyek menggunakan Konsol Pengembang Google dan menambahkan kunci API ke manifest Anda. Untuk tutorial ini, Anda perlu mendapatkan kunci API dan menyiapkan proyek Anda dengan manifest seperti yang dijelaskan di sana.

Selanjutnya, buka build.gradle dan tambahkan dua dependensi baru, satu untuk Play Services untuk menggunakan Google Maps dan satu lagi untuk perpustakaan Google Maps Utils.

Perlu saya perhatikan bahwa perpustakaan Google Maps Utils secara teknis masih dalam versi beta, meski sudah tersedia selama dua tahun terakhir. Setelah mengimpor perpustakaan ini dan mensinkronisasi proyeknya, Anda perlu memperbarui file layout untuk MainActivity.java agar menggunakan fragmen khusus yang ditunjukkan di bawah ini.

Selanjutnya, buat kelas UtilsListFragment yang digunakan di atas sehingga menampilkan daftar item sederhana yang mewakili berbagai bagian perpustakaan yang akan Anda pelajari di tutorial ini.

Masing-masing string ditentukan dan ditempatkan dalam string-array untuk keseragaman.

Initial list for utilities used in this tutorialInitial list for utilities used in this tutorialInitial list for utilities used in this tutorial

Setelah daftarnya Anda tersedia, Anda perlu membuat BaseMapActivity.java, yang menangani semua konfigurasi terkait peta umum untuk setiap contoh aktivitas yang akan Anda bangun. Activity ini menginisialisasi GoogleMap dan memperbesar kamera ke area tertentu. Dalam hal ini, daerah itu adalah kota Denver di Colorado, AS. Segala sesuatu di kelas ini harus terlihat familiar dari dua artikel terakhir di serial ini.

Setelah proyek awal dibangun, Anda dapat melanjutkan ke bagian berikutnya di mana Anda akan membuat Activity baru untuk setiap utilitas yang akan kita bahas di tutorial ini.

3. Heat Maps

Heat maps adalah cara terbaik untuk menggambarkan secara visual konsentrasi dari titik data pada peta. Perpustakaan Google Maps Utils memudahkan untuk menambahkannya ke aplikasi. Untuk memulai, buat BaseMapActivity baru bernama HeatMapActivity dan tambahkan ke file AndroidManifest.xml Anda. Di bagian atas kelas tersebut, nyatakan HeatmapTileProvider yang akan kita gunakan untuk membuat overlay peta.

Di BaseMapActivity, sebuah metode bernama initMapSettings dipanggil yang memungkinkan Anda menambahkan penyesuaian Anda ke peta. Untuk Activity ini, Anda perlu menimpa metode tersebut untuk mendapatkan objek ArrayList dari LatLng yang kemudian digunakan untuk menghasilkan objek HeatmapTileProvider.

Penyedia memiliki berbagai metode yang dapat digunakan untuk mengubah tampilan heat map Anda, seperti warna gradien, radius untuk setiap titik, dan bobot masing-masing titik. Setelah penyedia Anda dibangun, Anda dapat membuat TileOverlay heat map dan menerapkannya ke peta Anda.

Dalam implementasi initmapSettings di atas, generateLocations adalah metode pembantu yang menghasilkan 1000 posisi LatLng di sekitar pusat lokasi peta.

Setelah selesai menerapkan initMapSettings dan generateLocations, Anda dapat menjalankan aplikasi Anda dan mengklik bagian heat map untuk melihatnya beraksi.

Heat map of points on a mapHeat map of points on a mapHeat map of points on a map

4. Pengelompokan Penanda

Bila peta memiliki banyak titik data di area yang kecil, peta akan sangat berantakan saat pengguna melakukan zoom out. Tidak hanya itu, namun terlalu banyak penanda yang ditampilkan sekaligus dapat menyebabkan beberapa perangkat melambat.

Untuk membantu meringankan beberapa frustrasi yang disebabkan oleh masalah ini, Anda dapat menggunakan perpustakaan Google Maps Utils untuk menganimasikan penanda Anda ke dalam kelompok-kelompok. Hal pertama yang perlu Anda lakukan adalah membuat objek model baru yang menerapkan antarmuka ClusterItem. Model ini perlu menerapkan metode getPosition dari antarmuka ClusterItem agar mengembalikan objek LatLng yang valid.

Dengan model telah dibuat, Anda dapat membuat Activity baru yang disebut ClusterMarkerActivity dan menambahkannya ke manifest Anda. Saat Anda menginisialisasi peta Anda, Anda perlu membuat ClusterManager, mengaitkannya dengan GoogleMap Anda, dan menambahkan posisi LatLng Anda sebagai ClusterMarkerLocations ke ClusterManager agar mengetahui apa yang harus dikelompokkan. Lihatlah implementasi initMarkers untuk lebih memahami bagaimana ini bekerja.

Dalam contoh ini, kita membuat 1000 titik acak untuk ditampilkan dan menambahkannya ke peta. Perpustakaan Google Maps Utils menangani segala hal lainnya untuk kita.

Zoomed in view of markers when they are unclusteredZoomed in view of markers when they are unclusteredZoomed in view of markers when they are unclustered
Zoomed out view of 1000 markers clustered togetherZoomed out view of 1000 markers clustered togetherZoomed out view of 1000 markers clustered together

5. Utilitas Lainnya

Selain dua item terakhir, perpustakaan Google Maps Utils penuh dengan utilitas kecil yang berguna. Jika Anda memiliki banyak titik berbeda yang membentuk rute, Anda dapat menyandikannya sebagai polyline dan kemudian menambahkan polyline tersebut ke peta Anda menggunakan PolyUtil. Ini akan menampilkan jalur di antara masing-masing titik di sepanjang peta.

Displayed route using the PolyUtil to decode a PolylineDisplayed route using the PolyUtil to decode a PolylineDisplayed route using the PolyUtil to decode a Polyline

Selain PolyUtil, Google telah menambahkan SphericalUtil yang dapat digunakan untuk mengukur jarak atau mengetahui geometri di sepanjang permukaan bola. Jika Anda ingin menemukan jarak antara dua titik di peta, Anda dapat memanggil SphericalUtil.computeDistanceBetween( posisi LatLng1, posisi LatLng2 ) untuk mengembalikan sebuah double dari jarak dalam meter. Jika Anda ingin menemukan judul di antara dua titik, Anda dapat memanggil SphericalUtil.computeHeading ( LatLng point1, LatLng point2 ).

Distance between two points from SphericalUtilDistance between two points from SphericalUtilDistance between two points from SphericalUtil

Sehubungan dengan ini, metode utilitas lain di kelas SpericalUtil memungkinkan Anda menemukan titik pada posisi dan jarak tertentu. Saya merekomendasikan browsing dokumentasi untuk mempelajari lebih lanjut tentang kelas SpericalUtil.

Kesimpulan

Dalam tutorial ini, Anda baru saja menggores permukaan dari perpustakaan Google Maps Utils dan semua yang ditawarkan. Fungsi lain yang dapat ditambahkan ke aplikasi Anda mencakup menambahkan lapisan untuk data KML, membuat penanda khusus, dan metode penolong untuk bekerja dengan GeoJSON.

Beruntung, Google telah membuka sumber seluruh perpustakaannya, sehingga Anda dapat menemukan kode sumber perpustakaan dan kode demo di GitHub. Setelah melewati tiga bagian terakhir dari seri ini, sekarang Anda seharusnya cukup nyaman dengan Google Maps untuk menambahkannya ke aplikasi Anda sendiri untuk memperkaya pengalaman pengguna dan membuat aplikasi yang hebat.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.