Unity獲取當前所在城市及GPS資訊
阿新 • • 發佈:2019-02-01
先宣告一點,此部落格可能不能滿足大部分人的需求,當本人只是記錄一下有這樣的一種方法。
僅限於需要獲取當前ip所屬城市,及城市的經緯度資訊。
實現過程並不難。
主要是依據於百度的一個api介面
string url = "http://api.map.baidu.com/location/ip?ak=bretF4dm6W5gqjQAXuvP0NXW6FeesRXb&coor=bd09ll"; void Start() { StartCoroutine(Request()); } IEnumerator Request() { WWW www = new WWW(url); yield return www; if (string.IsNullOrEmpty(www.error)) { Debug.Log(www.text); ResponseBody req = JsonConvert.DeserializeObject<ResponseBody>( www.text); Debug.Log(req.content.address_detail.city +" X: "+ req.content.point.x +" Y: "+ req.content.point.x); } }
而這個介面以網址的形式載入,載入成功後會返回一段json資料
這時候就需要用到json的解析工具了,反解析為固定的模式。而這個模式好像是百度api介面已經定好的,這裡我們用Newtonsoft.Json。
類的固定格式如下
public class ResponseBody { public string address; public Content content; public int status; } public class Content { public string address; public Address_Detail address_detail; public Point point; } public class Address_Detail { public string city; public int city_code; public string district; public string province; public string street; public string street_number; public Address_Detail(string city, int city_code, string district, string province, string street, string street_number) { this.city = city; this.city_code = city_code; this.district = district; this.province = province; this.street = street; this.street_number = street_number; } } public class Point { public string x; public string y; public Point(string x, string y) { this.x = x; this.y = y; } }
載入後的資料經過解析後
json的解析工具,以及原始碼地址https://download.csdn.net/download/qq_37310110/10343954