Menggunakan layanan Mega Landmark
Artikel ini memperkenalkan cara menggunakan layanan lokasi Mega Landmark setelah plugin Mega diintegrasikan ke dalam WeChat Mini Program.
Sebelum memulai
- Dapatkan dan gunakan APIKey (harus mencakup Mega Landmark).
- Pahami konsep dan alur kerja MegaTracker.
- Pahami otentikasi layanan cloud MegaTracker.
Mengaktifkan Mega Landmark
Pertama, buat MegaTrackerConfigs menggunakan Landmark sebagai apiType.
Kemudian buat SessionConfigs menggunakan MegaTrackerConfigs dan licenseKey dari konfigurasi.
Terakhir, buat session menggunakan metode createSession(sessionConfigs) dari komponen EasyARMegaComponent yang terpasang di scene xr-frame.
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
apiType: mega.MegaApiType.Landmark
};
const sessionConfigs: easyar.SessionConfigs = {
megaTrackerConfigs: megaTrackerConfigs,
licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);
Cara menggunakan LandmarkFilter
Saat dibuat menggunakan Landmark, MegaTracker secara otomatis membuat instance internal MegaLandmarkFilter.
Fungsinya adalah memfilter database lokasi Mega yang paling sesuai melalui SpotId atau data GNSS saat menggunakan layanan Landmark.
Antarmuka filter hanya dapat dipanggil setelah start(options) berhasil.
Ketika MegaTracker menggunakan layanan Landmark tetapi tidak berhasil memfilter, status lokalisasi selalu MissingSpotVersionId
- Mencocokkan database lokasi dengan SpotID yang disediakan:
Gunakan metode filterBySpotId(spotId) dari Landmark untuk mencocokkan database lokasi melalui SpotID:
async landmarkFilter() {
const res = await session.megaTracker.landmarkFilter.filterBySpotId(settings.LandmarkSpotId);
if (res.status != mega.MegaLandmarkFilterStatus.Found) {
console.error(`LandmarkFilter Failed, status: ${mega.MegaLandmarkFilterStatus[res.status]}, exceptionInfo : ${res.exceptionInfo}`)
}
}
- Mencocokkan database lokasi dengan data GNSS saat ini:
Gunakan metode filterByLocation() dari Landmark untuk mencocokkan database lokasi menggunakan data GNSS saat ini:
async landmarkFilter() {
const res = await session.megaTracker.landmarkFilter.filterByLocation();
if (res.status != mega.MegaLandmarkFilterStatus.Found) {
console.error(`LandmarkFilter Failed, status: ${mega.MegaLandmarkFilterStatus[res.status]}, exceptionInfo : ${res.exceptionInfo}`)
}
}