About POI
XR Scene에서 POI(point of interest)를 획득 하는 방법을 설명 합니다.
tip
POI란 Space SDK를 사용하여 XR 환경 위에 띄울 수 있는 장소들에 대한 정보들을 말합니다. 음식점, 카페 등 다양한 POI 정보가 존재합니다. 개발자는 획득한 POI의 좌표를 이용하여 네비게이션 등에 활용 할 수 있습니다.
MaxstSceneManager.cs
public void OnClickGetPOI()
{
poiDatas.Clear()
if (!XRStudioController.Instance.ARMode)
{
VPSTrackable eachTrackable = vPSTrackablesList[0];
POIController.GetPOI(this, XRAPI.Instance.GetAccessToken(), eachTrackable.spaceId, success: (pois) =>
{
poiDatas.AddRange(pois);
GameObject poiGameObject = new GameObject();
poiGameObject.name = "POI";
poiGameObject.transform.position = new Vector3(0, 0, 0);
poiGameObject.transform.eulerAngles = new Vector3(0, 0, 0);
poiGameObject.transform.localScale = new Vector3(1, 1, 1);
poiGameObject.transform.parent = arContent.transform;
foreach (POIData eachPOI in pois)
{
GameObject eachPoiGameObject = Instantiate(poiPrefab);
eachPoiGameObject.transform.position = eachPOI.GetVPSPosition();
eachPoiGameObject.transform.parent = poiGameObject.transform;
eachPoiGameObject.name = eachPOI.poi_name_ko;
poiItems.Add(eachPoiGameObject);
}
},
fail: () =>
{
});
return;
}
if (currentLocalizerSpaceId != "")
{
POIController.GetPOI(this, XRAPI.Instance.GetAccessToken(), currentLocalizerSpaceId, success: (pois) =>
{
poiDatas.AddRange(pois);
GameObject poiGameObject = new GameObject();
poiGameObject.name = "POI";
poiGameObject.transform.position = new Vector3(0, 0, 0);
poiGameObject.transform.eulerAngles = new Vector3(0, 0, 0);
poiGameObject.transform.localScale = new Vector3(1, 1, 1);
poiGameObject.transform.parent = arContent.transform;
foreach (POIData eachPOI in pois)
{
GameObject eachPoiGameObject = Instantiate(poiPrefab);
eachPoiGameObject.transform.position = eachPOI.GetVPSPosition();
eachPoiGameObject.transform.parent = poiGameObject.transform;
eachPoiGameObject.name = eachPOI.poi_name_ko;
poiItems.Add(eachPoiGameObject);
}
},
fail: () =>
{
});
}
}
- POI를 호출하는 번호는 Trackable에 포함 되어 있습니다.
- POI는 SpaceId를 통해서 획득하게 됩니다.
- POIController.GetPOI()함수를 통해서 해당 위치의 POI를 획득 할 수 있습니다.
