意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

【Unity开发小技巧】Unity获取当前所在城市及GPS信息

来源:恒创科技 编辑:恒创科技编辑部
2022-10-01 10:24:04


欢迎加入Unity业内qq交流群:956187480


此博客可能不能满足大部分人的需求,仅限于需要获取当前ip所属城市,及城市的经纬度信息。


【Unity开发小技巧】Unity获取当前所在城市及GPS信息

实现过程并不难。主要是依据于百度的一个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数据

【Unity开发小技巧】Unity获取当前所在城市及GPS信息_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;
}
}

加载后的数据经过解析后

【Unity开发小技巧】Unity获取当前所在城市及GPS信息_json_02

然后我们就能得到想要的数据了点击打开源码地址链接



欢迎加入Unity业内qq交流群:956187480

上一篇: 租用美国服务器:潜在的风险与应对策略。 下一篇: MongoDB 5.0 扩展开源文档数据库操作