Unity接入高德開放API實(shí)現(xiàn)IP定位
一、接口介紹
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ù)說(shuō)明定義相應(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)說(shuō)明 /// 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)文章
C#實(shí)現(xiàn)多選項(xiàng)卡的瀏覽器控件
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)多選項(xiàng)卡的瀏覽器控件的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-03-03C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類介紹
本文主要介紹了C#中的靜態(tài)成員、靜態(tài)方法、靜態(tài)類的基礎(chǔ)的使用,并做了相關(guān)的代碼演示,供初學(xué)者參考。2016-03-03C#實(shí)現(xiàn)給DataGrid單元行添加雙擊事件的方法
這篇文章主要介紹了C#實(shí)現(xiàn)給DataGrid單元行添加雙擊事件的方法,較為詳細(xì)的分析了C#給DataGrid單元添加雙擊事件的步驟及相關(guān)實(shí)現(xiàn)代碼,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07自定義實(shí)現(xiàn)Json字符串向C#對(duì)象轉(zhuǎn)變的方法
自定義實(shí)現(xiàn)Json字符串向C#對(duì)象轉(zhuǎn)變的方法,需要的朋友可以參考一下2013-03-03C/C++ 傳遞動(dòng)態(tài)內(nèi)存的深入理解
本篇文章是對(duì)C/C++中的傳遞動(dòng)態(tài)內(nèi)存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05winform關(guān)閉窗體FormClosing事件用法介紹
這篇文章介紹了winform關(guān)閉窗體FormClosing事件的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03c# 獲取CookieContainer的所有cookies函數(shù)代碼
這篇文章主要介紹了c# 獲取CookieContainer所有cookies的函數(shù)代碼,需要的朋友可以參考下2013-06-06