Я делаю приложение на основе определения местоположения, которое имеет компас, указывающий на некоторые координаты Long и Lat.Мне нужно получить доступ к своим собственным координатам, чтобы иметь возможность рассчитать поворот, в котором нуждается мой компас, но проблема в том, что мой сервис определения местоположения истекает.Чувствительность этого приложения составляет 3 метра.
Я создал второе приложение, которое просто показывает ваши координаты Long и Lat с чувствительностью местоположения 5 метров, и оно работает почти мгновенно.Вот код моего первого проекта:
IEnumerator Start()
{
// First, check if user has location service enabled
if (!Input.location.isEnabledByUser)
{
ErrorHandler.ShowMessageError("Location service not enabled");
isLoopAllowed = false;
yield break;
}
// Start service before querying location
Input.location.Start(Storage.LOCATION_SENSITIVITY, Storage.LOCATION_SENSITIVITY);
// Wait until service initializes
int maxWait = 20;
while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
{
yield return new WaitForSeconds(1);
maxWait--;
}
// Service didn't initialize in 20 seconds
if (maxWait < 1)
{
ErrorHandler.ShowMessageError("Timed out");
isLoopAllowed = false;
yield break;
}
// Connection has failed
if (Input.location.status == LocationServiceStatus.Failed)
{
ErrorHandler.ShowMessageError("Can't locate your device");
isLoopAllowed = false;
yield break;
}
else
{
// Access granted and location value could be retrieved
//print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp);
Storage.USER_LATITUDE = Input.location.lastData.latitude;
Storage.USER_LONGITUDE = Input.location.lastData.longitude;
Storage.LOCATION_READY = true;
}
}
Некоторое введение в скрипт:
Переменная isLoopKeyAllowed предназначена для остановки цикла в случае ошибки.
Хранениекласс - это просто класс с глобальными переменными.
В классе ErrorHandler есть функция ShowMessageError (), которая просто выводит ошибку на экран.
LOCATION_READY - это переменная, используемая компасомсценарий.
и это все.Я не знаю в чем проблема.Может быть, это вызвано тем, что чувствительность слишком высока?
(РЕДАКТИРОВАТЬ): Проблема в том, что отображается ошибка тайм-аута и цикл завершен.