鸟语天空
获取GPS位置
post by:追风剑情 2022-3-9 15:52

[官方文档] http://docs.unity3d.com/Documentation/ScriptReference/LocationService.Start.html

为应用开启定位权限

111111.png

示例代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Android;
/// <summary>
/// GPS测试
/// </summary>
public class GPSTest : MonoBehaviour
{
    [SerializeField]
    private Text mText;

    public void OnClickGPS()
    {
        StartCoroutine(StartupGPS());
    }

    IEnumerator StartupGPS()
    {
        // 检测定位服务有没开启
        if (!Input.location.isEnabledByUser)
        {
            mText.text = "定位服务未开启";
            //请求GPS权限
            Permission.RequestUserPermission(Permission.FineLocation);
            yield break;
        }

        // 启动定位服务
        Input.location.Start(5, 5);

        // 等待定位服务初始化完成
        int maxWait = 20;
        while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
        {
            yield return new WaitForSeconds(1);
            maxWait--;
            mText.text = $"正在初始化位置服务({maxWait}s)";
        }

        // 如果定位服务在20秒内还未完成,则报告超时。
        if (maxWait < 1)
        {
            mText.text = "连接GPS超时";
            yield break;
        }

        // 如果连接失败,则会取消定位服务的使用
        if (Input.location.status == LocationServiceStatus.Failed)
        {
            mText.text = "位置服务失败(用户拒绝访问位置服务)";
            yield break;
        }
        else
        {
            //如果连接成功,则获取当前位置信息
            //longitude(经度),latitude(纬度),altitude(海拔高度)
            //horizontalAccuracy(水平精度),verticalAccuracy(垂直精度)
            LocationInfo info = Input.location.lastData;
            string text = string.Format(
                "经度: {0}\n" +
                "纬度: {1}\n" +
                "水平精度: {2}\n" +
                "垂直精度: {3}\n" +
                "海拔高度: {4}\n" +
                "时间戳: {5}",
                info.longitude, info.latitude,
                info.horizontalAccuracy, info.verticalAccuracy,
                info.altitude,
                info.timestamp);

            mText.text = text;
        }

        //如果不再需要查询位置信息,则关闭服务
        Input.location.Stop();
    }
}


获取到的GPS位置信息

22222.png

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容