Как получить точную высоту от устройства относительно земли, используя единицу? - PullRequest
0 голосов
/ 17 октября 2018

Привет. Я работаю над приложением Indoor для приложения IOS. Я пытаюсь получить значения широты, долготы и высоты. Когда я тестирую устройство, начальное значение высоты составляет около

3.67853-первый этаж (начальная точка)

3.665541-второй этаж

3.538336-Первый этаж

Из приведенных выше значений трудно понять, на каком этаже находится пользователь. Есть ли способ получить правильныйвысота над уровнем моря.

void Start ()
{
    StartCoroutine(Getdata());
}


IEnumerator Getdata()
{
    // First, check if user has location service enabled
    if (!Input.location.isEnabledByUser)
        yield break;

    // Start service before querying location
    Input.location.Start();

    // 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)
    {
        print("Timed out");
        yield break;
    }

    // Connection has failed
    if (Input.location.status == LocationServiceStatus.Failed)
    {
        print("Unable to determine device location");
        yield break;
    }
    else
    {
        // Access granted and location value could be retrieved
        Locationinformation.text = "Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp;
        print("Location: " + Input.location.lastData.latitude + " " + Input.location.lastData.longitude + " " + Input.location.lastData.altitude + " " + Input.location.lastData.horizontalAccuracy + " " + Input.location.lastData.timestamp);
    }

    // Stop service if there is no need to query location updates continuously
    Input.location.Stop();
}
...