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

Привет! Я использую приведенный ниже код, чтобы получить Широты и Долготы из устройства IOS. Проблема в том, что я получаю только до четырех баллов. Поэтому я читаю в блогах, что нам нужно использовать double, чтобы получить больше десятичных и Unity API поддерживает только 4 десятичных знака или до 6 десятичных знаков для широт. Для получения точных значений широты и долготы нам требуется больше десятичных знаков (например, 8.8382738239232032,120.23232328347823782323). Как получить больше десятичных значений.

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
{




    double aa= Input.location.lastData.latitude;
    Debug.Log("Double Latitude="+aa);

    latitudes = double.Parse(Input.location.lastData.latitude.ToString("R"));
    longitudes = double.Parse(Input.location.lastData.longitude.ToString("R"));
    altitudes = double.Parse(Input.location.lastData.altitude.ToString("R"));
    deviceinfo = SystemInfo.deviceModel;
// 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();
}

1 Ответ

0 голосов
/ 29 октября 2018

Я знаю 2 варианта здесь: Либо используйте дополнительный актив, подобный этому точность-gps-для-единства или получите значения, полученные в iPhone_Sensors.mm, затем преобразуйте их в строку и, наконец, передайте в Unity. Используйте этот гид PluginsForIOS

...