Unity3d 如何使用Unity获得纬度和经度值的精度?

Unity3d 如何使用Unity获得纬度和经度值的精度?,unity3d,gps,arkit,indoor-positioning-system,Unity3d,Gps,Arkit,Indoor Positioning System,您好,我正在使用下面的代码从IOS设备获取纬度和经度。问题是我最多只能获取四个点。因此我在博客中读到,我们需要使用double来获取更多小数点,Unity API仅支持纬度的4个小数点或最多6个小数点。为了获得准确的纬度/经度值,我们需要更多小数点。(例如:8.8382738239232032120.232328347823823782323)。如何获取更多小数点 void Start () { StartCoroutine(Getdata()); } IEnumerator Ge

您好,我正在使用下面的代码从IOS设备获取纬度和经度。问题是我最多只能获取四个点。因此我在博客中读到,我们需要使用double来获取更多小数点,Unity API仅支持纬度的4个小数点或最多6个小数点。为了获得准确的纬度/经度值,我们需要更多小数点。(例如:8.8382738239232032120.232328347823823782323)。如何获取更多小数点

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();
}
void Start()
{
start例程(Getdata());
}
IEnumerator Getdata()
{
//首先,检查用户是否启用了位置服务
如果(!Input.location.isEnabledByUser)
屈服断裂;
//在查询位置之前启动服务
Input.location.Start();
//等待服务初始化
int maxWait=20;
while(Input.location.status==LocationServiceStatus.Initializing&&maxWait>0)
{
返回新的WaitForSeconds(1);
maxWait--;
}
//服务在20秒内没有初始化
if(maxWait<1)
{
打印(“超时”);
屈服断裂;
}
//连接失败
if(Input.location.status==LocationServiceStatus.Failed)
{
打印(“无法确定设备位置”);
屈服断裂;
}
其他的
{
double aa=Input.location.lastData.LATIONE;
Debug.Log(“双纬度=”+aa);
latitudes=double.Parse(Input.location.lastData.latitude.ToString(“R”));
经度=double.Parse(Input.location.lastData.longitus.ToString(“R”));
altitudes=double.Parse(Input.location.lastData.altitude.ToString(“R”));
deviceinfo=SystemInfo.deviceModel;
//已授予访问权限,无法检索位置值
Locationinformation.text=“Location:”+Input.Location.lastData.latitude+“”+Input.Location.lastData.longitude+“”+Input.Location.lastData.altitude+“”+Input.Location.lastData.HorizontalAccurance+“”+Input.Location.lastData.timestamp;
打印(“位置:“+Input.Location.lastData.latitude+”“+Input.Location.lastData.longitude+”“+Input.Location.lastData.altitude+”“+Input.Location.lastData.HorizontalAccurance+”“+Input.Location.lastData.timestamp”);
}
//如果不需要连续查询位置更新,则停止服务
Input.location.Stop();
}
我知道这里有两个选项: 或者使用像这样的附加资产
或者获取iPhone_Sensors.mm中获取的值,然后将其转换为字符串,最后将其传递到Unity。使用此guid

如何从iPhone_Sensors.mm获取值。你是说我必须为unity?iPhone_Sensors.mm创建一个插件,在哪里可以找到它?