Table of Contents

Panduan dan praktik terbaik penggunaan multi-peta

Dalam pengembangan aplikasi Mega, apakah sebaiknya menambahkan beberapa peta (Block) dalam satu basis data lokalisasi adalah pertanyaan umum. Penggunaan multi-peta yang salah tidak hanya tidak meningkatkan kemampuan aplikasi, tetapi juga dapat menyebabkan penurunan kinerja dan loncatan lokalisasi.

Artikel ini akan memandu Anda untuk memahami dan menggunakan fungsionalitas multi-peta dengan benar, menghindari kesalahan umum.

Mengapa perlu menghindari penambahan beberapa peta?

Prinsip inti: Jangan menambahkan beberapa peta hanya untuk "memperluas cakupan".

Dalam sebagian besar kasus, satu basis data lokalisasi seharusnya hanya menambahkan satu peta Mega Block untuk satu lokasi. Berikut adalah beberapa penggunaan salah yang umum, harus dihindari:

  • Skenario kesalahan A: Multi-area

    • Pemikiran: Membuat peta terpisah untuk "Area A", "Area B", "Area C" di sebuah objek wisata yang saling terhubung, kemudian menambahkan ketiga peta ini sekaligus ke basis data dalam aplikasi, berharap pengguna dapat beralih secara mulus saat berpindah di dalam objek wisata.
    • Masalah: Tiga peta yang dibuat dengan cara ini tidak memiliki hubungan matematis dalam koordinat spasial satu sama lain, masing-masing independen. Karena ketidakkonsistenan sistem koordinat masing-masing, tidak mungkin dilakukan peralihan mulus saat bergerak, sehingga akan terjadi loncatan lokalisasi di perbatasan area.
    • Solusi: Untuk skenario seperti ini, cara penanganan terbaik adalah mengikuti metode yang dijelaskan dalam Metode akuisisi data ruang besar untuk mengakuisisi "Area A", "Area B", "Area C", dan memastikan ada area tumpang tindih yang cukup di antara mereka. Lakukan pemetaan sesuai dengan cara yang dijelaskan dalam Tugas fusi cakupan besar. Ini akan menghasilkan satu peta Block tunggal yang mencakup semua area tersebut dalam satu sistem koordinat yang terpadu, peta ini dapat ditambahkan ke basis data lokalisasi.
  • Skenario kesalahan B: Multi-lokasi

    • Pemikiran: Membuat satu peta untuk sebuah mal di satu lokasi, lalu membuat peta lain untuk mal dengan nama yang sama di lokasi berbeda, berharap dapat digunakan bersamaan dalam satu aplikasi.
    • Masalah: Ini akan sangat memperlambat kecepatan lokalisasi. Perangkat, saat melakukan lokalisasi, perlu membandingkan semua data peta dalam basis data secara bersamaan, perhitungannya meningkat drastis, menyebabkan waktu inisialisasi menjadi lebih lama. Pengguna hanya dapat berada di satu mal dalam satu waktu, memuat peta mal lain adalah pemborosan sumber daya. Ketika permintaan ke satu mal tinggi, ini juga akan memperlambat waktu respons permintaan mal lainnya.
    • Solusi: Buat basis data lokalisasi yang berbeda untuk mal di lokasi yang berbeda. Setiap basis data hanya menambahkan satu peta. Dalam aplikasi, berdasarkan lokasi pengguna saat ini, akses secara dinamis basis data lokalisasi yang sesuai dengan lokasi tersebut.
  • Skenario kesalahan C: Lintas waktu

    • Pemikiran: Lokasi yang sama, melakukan akuisisi dan pemetaan pada siang hari, lalu melakukan akuisisi dan pemetaan lagi pada malam hari, kemudian menambahkan peta siang dan malam ke basis data, berharap pengguna memiliki pengalaman yang konsisten di lokasi yang sama pada waktu yang berbeda.
    • Masalah: Skenario ini mirip dengan skenario kesalahan A, hasil pemetaan yang terpisah tidak dapat menjamin hubungan posisi spasial.
    • Solusi: Gabungkan akuisisi siang dan malam dengan cara yang dijelaskan dalam Tugas fusi cakupan besar untuk pemetaan fusi. Tambahkan peta Block tunggal yang dihasilkan ke basis data lokalisasi.
  • Skenario kesalahan D: Lintas versi

    • Pemikiran: Lokasi yang sama, sudah memiliki peta versi A yang sedang digunakan, dalam operasional selanjutnya membuat peta versi B yang lebih baru dan menambahkannya ke basis data lokalisasi asli, berharap dapat menggunakan peta baru tanpa harus merilis ulang aplikasi.
    • Masalah: Karena ini adalah peta versi berbeda untuk lokasi yang sama, saat lokalisasi akan terjadi loncatan hasil lokalisasi antara dua versi data yang berbeda.
    • Solusi: Lakukan peningkatan pada peta versi lama sesuai cara yang dijelaskan dalam Pembaruan penuh tanpa kerugian, memastikan data peta diperbarui sambil mempertahankan sistem koordinat yang sama. Setelah menambahkan peta yang diperbarui, pastikan untuk menghapus peta versi asli dari basis data lokalisasi.
  • Skenario kesalahan E: Pembaruan tambahan

    • Pemikiran: Lokasi yang sama, sudah memiliki peta versi A yang sedang digunakan, dalam operasional selanjutnya karena perubahan di area lokal atau kebutuhan akuisisi tambahan untuk area kecil, membuat peta baru B dan menambahkannya ke basis data lokalisasi asli, berharap dapat menggunakan peta baru tanpa harus merilis ulang aplikasi.
    • Masalah: Peta area kecil B yang baru diakuisisi tidak memiliki hubungan koordinat spasial dengan peta asli A, pengalaman di antara data baru dan lama akan mengalami loncatan lokalisasi.
    • Solusi: Lakukan pembaruan tambahan pada peta versi lama sesuai cara yang dijelaskan dalam Pembaruan tambahan, memastikan area kecil yang baru diakuisisi mempertahankan sistem koordinat yang sama dengan peta lama. Setelah menambahkan peta yang diperbarui, pastikan untuk menghapus peta versi asli dari basis data lokalisasi.

Ringkasan: Mencoba menyusun dunia besar dari beberapa peta kecil tidak cocok untuk peta presisi tinggi Mega. Filosofi desain Mega adalah representasi tiga dimensi presisi tinggi yang kontinu secara spasial, terkoordinasi secara terpadu, dan konsisten secara spasial-temporal.

Skenario yang benar-benar membutuhkan multi-peta

Lalu, kapan benar-benar perlu menambahkan beberapa peta (Block) dalam satu basis data? Skenario utamanya adalah "tugas paralel" atau "pilihan multi-ruang", bukan "penyambungan ruang".

  • Skenario satu: Pilihan multi-ruang

    • Deskripsi: Aplikasi Anda melayani beberapa area yang benar-benar berbeda di lokasi yang sama. Namun, karena keterbatasan struktur bangunan atau masalah dalam praktik akuisisi, area-area ini tidak dapat dihubungkan sepenuhnya secara data, pengguna mungkin perlu memilih area mereka terlebih dahulu. Misalnya, lantai berbeda di rumah sakit besar.
    • Implementasi: Setelah pengguna memilih area, gunakan informasi apriori ini untuk mengaktifkan secara dinamis peta tunggal yang sesuai dengan lokasi tersebut. Pada saat yang sama, hanya satu peta dalam basis data lokalisasi yang berpartisipasi dalam perhitungan. Saat pengguna pindah ke area baru, perlu konfirmasi ulang pilihan area.
  • Skenario dua: Tugas paralel

    • Deskripsi: Aplikasi Anda perlu menangani dua atau lebih tugas pelacakan objek independen yang diketahui secara bersamaan, dan objek-objek ini berada di lokasi yang sama tetapi tidak terkait satu sama lain dan memiliki perbedaan fitur yang besar. Misalnya, beberapa benda pameran di museum.
    • Implementasi: Dalam skenario lanjutan ini, Anda dapat membuat peta independen untuk setiap objek, lalu menambahkan "peta objek" ini ke satu basis data lokalisasi. Namun perlu diperhatikan, kinerja lokalisasi akan bergantung pada jumlah objek yang ditambahkan ke basis data. Jika jumlah objek sangat besar, Anda mungkin perlu menyeimbangkan antara kinerja lokalisasi dan jumlah basis data, Anda dapat mengelompokkan objek dan membuat beberapa basis data lokalisasi yang ditambahkan secara terpisah.

Perilaku sisi render saat menggunakan multi-peta

Perlu diperhatikan bahwa saat menggunakan lokalisasi multi-peta, perilaku render 3D di berbagai platform dan versi berbeda.

Saran praktik terbaik

Jika Anda memang termasuk dalam skenario yang dijelaskan di Skenario yang benar-benar membutuhkan multi-peta, atau harus menggunakan multi-peta, ikuti prinsip berikut:

  1. Aktivasi sesuai kebutuhan: Saat pengguna membuat pilihan atau memasuki area tertentu, berikan informasi apriori yang sesuai saat mengirim permintaan lokalisasi, dan hanya muat konten 3D yang sesuai.
  2. Peralihan dinamis: Sediakan UI yang jelas agar pengguna dapat memilih adegan. Sebelum memuat konten 3D yang sesuai dengan peta baru, bongkar konten 3D yang sesuai dengan peta lama terlebih dahulu untuk membebaskan memori.
  3. Manajemen status: Kelola secara eksplisit peta yang saat ini aktif dalam kode, pantau Block ID dalam hasil lokalisasi untuk membedakan umpan balik lokalisasi dari peta yang berbeda.
  4. Pemantauan kinerja: Saat menggunakan multi-peta, pantau secara ketat penggunaan memori perangkat, latensi lokalisasi, dan konsumsi daya, pastikan aplikasi berjalan lancar di perangkat target.

Singkatnya, untuk sebagian besar aplikasi, berpegang pada prinsip "satu adegan, satu peta", adalah pilihan terbaik untuk menjamin kinerja dan stabilitas lokalisasi Mega.