Unity中获取移动设备GPS信息

代码控制打开权限以及获取经纬度:

public string gps_info = "";
public int flash_num = 1;

public float n;
public float e;

public IEnumerator StartGPS()
{
// Input.location 用于访问设备的位置属性(手持设备), 静态的LocationService位置
// LocationService.isEnabledByUser 用户设置里的定位服务是否启用
if (!Input.location.isEnabledByUser)
{
this.gps_info = "isEnabledByUser value is:" + Input.location.isEnabledByUser.ToString() + " Please turn on the GPS";
}

// LocationService.Start() 启动位置服务的更新,最后一个位置坐标会被使用
Input.location.Start(10.0f, 10.0f);

int maxWait = 20;
while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
{
// 暂停协同程序的执行(1秒)
yield return new WaitForSeconds(1);
maxWait--;
}

if (maxWait < 1)
{
this.gps_info = "Init GPS service time out";
}

if (Input.location.status == LocationServiceStatus.Failed)
{
this.gps_info = "Unable to determine device location";
}
else
{
this.gps_info = "N:" + Input.location.lastData.latitude + " E:" + Input.location.lastData.longitude;
this.gps_info = this.gps_info + " Time:" + Input.location.lastData.timestamp;

n = Input.location.lastData.latitude;
e = Input.location.lastData.longitude;
yield return new WaitForSeconds(100);
}
}

posted @ 2017-11-01 15:22  Erise  阅读(2861)  评论(0编辑  收藏  举报