У меня есть приложение Angular, которое использует ar js для распознавания маркеров. Мой компонент выглядит так:
<div class="ar-container" *ngIf="arReady && currentMarker">
<a-scene arjs="debugUIEnabled: false; patternRatio: 0.5;" device-orientation-permission-ui="enabled: false" vr-mode-ui="enabled: false">
<a-marker *ngIf="currentMarker === 'water'" type='pattern' url="/assets/patterns/water.patt" #marker></a-marker>
<a-marker *ngIf="currentMarker === 'food'" type='pattern' url="/assets/patterns/food.patt" #marker></a-marker>
<a-marker *ngIf="currentMarker === 'protect'" type='pattern' url="/assets/patterns/protect.patt" #marker></a-marker>
<a-marker *ngIf="currentMarker === 'power'" type='pattern' url="/assets/patterns/power.patt" #marker></a-marker>
<a-marker *ngIf="currentMarker === 'gear'" type='pattern' url="/assets/patterns/gear.patt" #marker></a-marker>
<a-marker *ngIf="currentMarker === 'square'" type='pattern' url="/assets/patterns/square.patt" #marker></a-marker>
<a-entity camera *ngIf="arReady"></a-entity>
</a-scene>
</div>
Это отлично работает. Если входное значение currentMarker обновлено, мое приложение обновит текущий a-маркер, и шаблон будет распознаваться соответствующим образом (работает только с ngif, а не с динамическим c url).
Однако распознавание не достаточно строг. Например: если я пытаюсь отсканировать «воду», сканируется «шестеренка». Это не go для всех шаблонов, но для некоторых.
Мой вопрос: есть ли переменная или, возможно, другой способ сделать распознавание более строгим?
Спасибо.