最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity接入高德開放API實(shí)現(xiàn)IP定位

 更新時(shí)間:2022年04月13日 10:41:36   作者:CoderZ1010  
這篇文章主要為大家介紹了Unity如何接入高德開放API實(shí)現(xiàn)IP定位功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下

一、接口介紹

Http接口,根據(jù)輸入的IP地址,快速定位IP所在位置,僅支持IPV4,不支持國(guó)外IP解析。

二、申請(qǐng)密鑰Key

1.登錄高德開放平臺(tái),進(jìn)入控制臺(tái)

2.在應(yīng)用管理中創(chuàng)建新的應(yīng)用

3.為應(yīng)用添加Key

三、在Unity中應(yīng)用

1.定位數(shù)據(jù)結(jié)構(gòu)

根據(jù)官方文檔中給出的返回結(jié)果參數(shù)說明定義相應(yīng)的數(shù)據(jù)結(jié)構(gòu)

/// <summary>
/// IP定位響應(yīng)數(shù)據(jù)結(jié)構(gòu)
/// </summary>
[Serializable]
public class IPLocationResponse
{
    /// <summary>
    /// 返回結(jié)果狀態(tài)值
    /// 0表示失敗 1表示成功
    /// </summary>
    public string status;
    /// <summary>
    /// 返回狀態(tài)說明
    /// status為0時(shí),info返回錯(cuò)誤原因 否則返回OK
    /// </summary>
    public string info;
    /// <summary>
    /// 狀態(tài)碼 10000表示正確,詳情參閱官方文檔info狀態(tài)表
    /// </summary>
    public string infocode;
    /// <summary>
    /// 省份名稱
    /// </summary>
    public string province;
    /// <summary>
    /// 城市名稱
    /// </summary>
    public string city;
    /// <summary>
    /// 城市的adcode編碼
    /// </summary>
    public string adcode;
    /// <summary>
    /// 所在城市矩形區(qū)域范圍
    /// </summary>
    public string rectangle;
}

2.函數(shù)封裝

using System;
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
 
/// <summary>
/// IP定位
/// </summary>
public class IPLocation 
{
    //在高德開放平臺(tái)創(chuàng)建應(yīng)用獲取密鑰
    private static readonly string key = "";
 
    /// <summary>
    /// 發(fā)起網(wǎng)絡(luò)請(qǐng)求
    /// </summary>
    /// <param name="ip">要定位的IP地址</param>
    /// <param name="callback">回調(diào)函數(shù)</param>
    /// <returns></returns>
    public static IEnumerator SendWebRequest(string ip, Action<IPLocationResponse> callback)
    {
        string url = string.Format("https://restapi.amap.com/v3/ip?key={0}&ip={1}", key, ip);
        using(UnityWebRequest request = UnityWebRequest.Get(url))
        {
            yield return request.SendWebRequest();
            if (!request.isHttpError && !request.isNetworkError)
            {
                Debug.Log(request.downloadHandler.text);
                IPLocationResponse response = JsonUtility.FromJson<IPLocationResponse>(request.downloadHandler.text);
                callback?.Invoke(response);
            }
            else
            {
                Debug.Log("調(diào)用IP定位接口失?。? + request.error.ToString());
            }
        }
    }
}

3.測(cè)試

using UnityEngine;
 
public class IPLocationExample : MonoBehaviour
{
    private void Start()
    {
        StartCoroutine(IPLocation.SendWebRequest("114.222.121.24", s => { }));
    }
}

到此這篇關(guān)于Unity接入高德開放API實(shí)現(xiàn)IP定位的文章就介紹到這了,更多相關(guān)Unity IP定位內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宝兴县| 舟山市| 北安市| 潼南县| 长子县| 兴城市| 全椒县| 舒城县| 巧家县| 舟山市| 从化市| 宾川县| 寿宁县| 荥经县| 汽车| 当雄县| 德格县| 田林县| 上饶县| 陇南市| 克山县| 武陟县| 皋兰县| 宣化县| 霍邱县| 和硕县| 迁西县| 密山市| 呼图壁县| 亳州市| 南和县| 尚志市| 读书| 靖西县| 济宁市| 镇江市| 保定市| 溧阳市| 晋中市| 朝阳市| 水城县|