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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類介紹
本文主要介紹了C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類的基礎的使用,并做了相關的代碼演示,供初學者參考。2016-03-03C#實現(xiàn)給DataGrid單元行添加雙擊事件的方法
這篇文章主要介紹了C#實現(xiàn)給DataGrid單元行添加雙擊事件的方法,較為詳細的分析了C#給DataGrid單元添加雙擊事件的步驟及相關實現(xiàn)代碼,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07c# 獲取CookieContainer的所有cookies函數(shù)代碼
這篇文章主要介紹了c# 獲取CookieContainer所有cookies的函數(shù)代碼,需要的朋友可以參考下2013-06-06