欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、接口介紹

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

二、申請密鑰Key

1.登錄高德開放平臺,進入控制臺

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

3.為應用添加Key

三、在Unity中應用

1.定位數(shù)據結構

根據官方文檔中給出的返回結果參數(shù)說明定義相應的數(shù)據結構

/// <summary>
/// IP定位響應數(shù)據結構
/// </summary>
[Serializable]
public class IPLocationResponse
{
    /// <summary>
    /// 返回結果狀態(tài)值
    /// 0表示失敗 1表示成功
    /// </summary>
    public string status;
    /// <summary>
    /// 返回狀態(tài)說明
    /// status為0時,info返回錯誤原因 否則返回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 
{
    //在高德開放平臺創(chuàng)建應用獲取密鑰
    private static readonly string key = "";
 
    /// <summary>
    /// 發(fā)起網絡請求
    /// </summary>
    /// <param name="ip">要定位的IP地址</param>
    /// <param name="callback">回調函數(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("調用IP定位接口失?。? + request.error.ToString());
            }
        }
    }
}

3.測試

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

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

相關文章

最新評論