Konfigurasi setelan aplikasi agar dapat menggunakan Geospatial API.
Prasyarat
Pastikan Anda memahami konsep dasar AR dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.
Aplikasi contoh dan codelab
Video ini menjelaskan langkah-langkah untuk membangun aplikasi yang menampilkan Geospasial data dan tempat di lokasi dunia nyata menggunakan Geospatial API.
Anda juga dapat mengikuti codelab Geospasial dokumentasi untuk langkah-langkah yang sama. Untuk menjalankan aplikasi contoh yang dibuat di video, lihat Panduan Memulai ARCore Geospatial.
Lihat Pengantar Geospatial API untuk informasi selengkapnya informasi tentang Geospatial API.
Jika Anda baru pertama kali melakukan pengembangan dengan ARCore, lihat Memulai untuk informasi tentang persyaratan perangkat lunak dan perangkat keras, prasyarat dan informasi lain khusus untuk platform yang Anda gunakan.
Pastikan lingkungan pengembangan Anda memenuhi persyaratan ARCore SDK, karena yang dijelaskan dalam Panduan Memulai.
Mengaktifkan ARCore API
Sebelum menggunakan Sistem Pemosisi Visual (VPS) di aplikasi, Anda harus terlebih dahulu mengaktifkan ARCore API di project Google Cloud baru atau yang sudah ada. Layanan ini bertanggung jawab untuk menghosting, menyimpan, dan me-resolve anchor Geospasial.
Otorisasi tanpa kunci lebih disukai, tetapi otorisasi Kunci API juga didukung.
Menambahkan library yang diperlukan ke aplikasi Anda
Setelah memberikan otorisasi pada aplikasi untuk memanggil ARCore API, Anda harus menambahkan library ke mengaktifkan fitur Geospasial di aplikasi Anda.
Di file build.gradle
aplikasi Anda, siapkan layanan Google Play untuk menyertakan file
Library Lokasi Layanan.
dependencies {
// Apps must declare play-services-location version >= 16.
// In the following line, substitute `16 (or later)` with the latest version.
implementation 'com.google.android.gms:play-services-location:16 (or later)'
}
Mengaktifkan kemampuan Geospasial dalam konfigurasi sesi
Sebelum membuat sesi, ubah GeospatialMode
dalam sesi Anda
konfigurasi ke ENABLED
:
Java
Config config = session.getConfig(); config.setGeospatialMode(Config.GeospatialMode.ENABLED); session.configure(config);
Kotlin
// Enable the Geospatial API. session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })
Meskipun mode Geospasial disetel ke ENABLED
, aplikasi diizinkan untuk mendapatkan
informasi geografis dari {i>Visual Positioning System<i} (VPS).
Minta pengguna untuk mengizinkan penggunaan data perangkat
Aplikasi yang menggunakan ARCore Geospatial API harus menampilkan perintah kepada pengguna untuk memahami dan mengizinkan penggunaan data dari perangkat mereka. Lihat Persyaratan privasi pengguna untuk informasi selengkapnya tidak akurat atau tidak sesuai.
Periksa kompatibilitas perangkat
Tidak semua perangkat yang mendukung ARCore juga mendukung Geospatial API, karena yang dijelaskan dalam panduan memulai.
Untuk memeriksa kompatibilitas perangkat pengguna, panggil
Session.checkGeospatialModeSupported()
Jika hasilnya false, jangan mencoba mengonfigurasi sesi (di bawah), seperti melakukan
sehingga akan memunculkan
UnsupportedConfigurationException
Meminta izin akses lokasi kepada pengguna saat runtime
Aplikasi Anda harus meminta izin akses lokasi saat runtime.
Untuk menggunakan ARCore Geospatial API, aplikasi Anda harus mendaftarkan hal-hal berikut izin tambahan:
ACCESS_FINE_LOCATION
untuk menentukan lokasi pengguna secara akurat.ACCESS_COARSE_LOCATION
untuk penentuan lokasi pengguna yang tidak akurat dan untuk mematuhi persyaratan privasi pengguna. Namun, Geospatial API tidak dapat dikonfigurasi berfungsi dengan lokasi sementara, dan permintaan API akan gagal jika pengguna menetapkan izin ini. Lihat di bawah untuk informasi lebih lanjut.ACCESS_INTERNET
untuk menghubungi layanan ARCore Geospatial API.
<manifest ... >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Pada perangkat yang menjalankan Android versi 12 atau yang lebih tinggi,
pengguna dapat meminta
aplikasi Anda hanya
memiliki akses ke
perkiraan lokasi
tidak akurat atau tidak sesuai. Untuk memenuhi permintaan ini, aplikasi Anda harus memiliki
ACCESS_COARSE_LOCATION
izin akses yang dikonfigurasikan, bersama dengan
ACCESS_FINE_LOCATION
,
sebagaimana ditunjukkan di atas. Anda harus
mengonfigurasi kedua izin akses lokasi.
Namun, saat pengguna menentukan lokasi sementara, tindakan tersebut mencegah Geospasial API sehingga tidak dapat memperoleh lokasi akurat yang diperlukan. Layanan Geospasial akan tidak mengizinkan dirinya sendiri dikonfigurasi jika aplikasi hanya memberikan lokasi kasar. Aplikasi Anda tidak dapat menggunakan Geospatial API dengan lokasi sementara.
Memeriksa ketersediaan Geospasial di lokasi perangkat saat ini
Karena Geospatial API menggunakan kombinasi VPS dan GPS untuk menentukan pose Geospasial, API dapat digunakan selama perangkat dapat menentukan lokasinya. Di area dengan akurasi GPS rendah, seperti dalam ruangan dan lingkungan perkotaan yang padat, API ini akan bergantung pada cakupan VPS untuk menghasilkan pose dengan akurasi tinggi. Dalam kondisi umum, VPS dapat diharapkan memberikan akurasi posisi sekitar 5 meter, dan akurasi rotasi 5 derajat. Gunakan Session.checkVpsAvailabilityAsync()
untuk menentukan apakah lokasi tertentu memiliki cakupan VPS.
Geospatial API juga dapat digunakan di area yang tidak memiliki cakupan VPS. Di lingkungan luar ruangan dengan sedikit atau tanpa penghalang di atas kepala, GPS mungkin cukup untuk membuat pose dengan akurasi tinggi.
Langkah berikutnya
- Dapatkan pose Geospasial kamera perangkat untuk menentukan lokasi persis perangkat pengguna di dunia nyata.
- Memeriksa ketersediaan VPS di lokasi tertentu pada perangkat.