マップの選択
マップベースのリローカリゼーションを開始するために、SDKはどのマップをリローカライズするかを知る必要があり、そのためにマップの Map Key を必要とします。
Map Selectionは、アプリケーションが使用するマップを選択するためのSDKの機能です。デフォルトでは、DirectMapSelection と CriteriaBasedMapSelection という2つのマップ選択の仕組みを提供しています。
Direct Map Selection
Direct Map Selectionは、単純に割り当てられたものを返す仕組みです。
この場合、開発者コンソールからマップキーを取得する必要があります。Project タブを右クリックし、Create > Pretia Ar Cloud > Map Selection > Direct Map Selection を選択すると、DirectMapSelection アセットを作成することができます。開発者コンソールからマップキーをコピーし、アセットに割り当てます。

Criteria-based Map Selection
マップキーを手動で設定するのは、環境が変わったときに新しいマップを作成する必要があるため面倒です。そこで、いくつかの条件を設定して、使用するマップを選択できるようにしています。
マップを作成する際、3Dスキャナーは現在時刻とデバイスのGPS位置情報を記録します。これらの情報をもとに、SDKはデバイスの現在地と時間を考慮して、どの地図が最適かを選択することができます。
Projectタブを右クリックし、Create > Pretia Ar Cloud > Map Selection > Criteria Based Map Selection を選択すると、CriteriaBasedMapSelection アセットを作成することができます。SDKは2つのデフォルトの基準マップ選択アセット、MapsInAreaCriteria とAllMapsCriteria を提供し、この機能を素早く使用できるようにします。
検索時にデフォルトの基準を表示させるために、パッケージベースのアセットの表示/非表示を切り替えてください。

この仕組みでは、Unity プロジェクトで使用する App Key に割り当てられたマップのリストから選択されるため、この仕組みを使用する前に 開発者コンソールからアプリにいくつかのマップを紐づけていることを確認してください。
Maps In Area Criteria
MapsInAreaCriteria では、半径50メートル以内で現在時刻に最も近い地図を選択します。

All Maps Criteria
AllMapsCriteria は半径の制限なく、距離的に最も近い地図を選択します。

カスタム条件
新しい基準を作成するとき、評価するマップのリストを制限するために、パラメータをさらにカスタマイズすることができます。ここでは、さまざまな基準についてそれぞれ説明します。
公開
PUBLIC_ONLY 、PRIVATE_ONLY 、ANY のいずれかを選択し、マップが公開されているかどうかでフィルタリングしないようにすることが可能です。
マージ
MERGED_MAPS_ONLY 、NOT_MERGED_MAPS_ONLY 、MERGED_MAPS_IF_EXISTS のいずれかを選択して、マージされたマップを優先するか、ANY を選択してマージされているかどうかでフィルタリングしないかを選択することができます。
グループキー
また、このリストにグループキーを追加することで、評価するマップのリストをさらに制限することができます。SDKは、割り当てられたグループキーの内部に存在するマップのみを評価します。グループキーは、開発者コンソールのマップ管理ページから取得できます。
Gps 閾値
Gps 閾値とは、距離の制限をメートル単位で表したものです。この閾値より遠い地図は選択されません。
時間閾値
現在の時刻を基準にして、この閾値よりも時間的に近い地図を選択します。時間的距離はⒶで正規化されます。0に近いほど、現在の日照条件に近い地図であることを意味します。
ソート
SORT_BY_GPS_DISTANCE 、SORT_BY_TIME 、NO_SORTING のいずれかを選択することができます。