获取实时天气、温度等


前言

提示:要实现实时获取天气情况


提示:以下是本篇文章正文内容,下面案例可供参考

一、判断所在地区

示例:问:如果没有网络怎么办?答:。。。
1.通过百度地图api获取返回的json

IEnumerator LoadHttpJson()
    {
        UnityWebRequest request = UnityWebRequest.Get(Posurl);
        yield return request.SendWebRequest();
        string str = request.downloadHandler.text;
        //File.WriteAllText(@"D:\weather\weather.josn", str);
        Debug.Log("返回信息:" + str);
        if (string.IsNullOrEmpty(request.error))
        {
            positionTool.ResponseBody t = LitJson.JsonMapper.ToObject<positionTool.ResponseBody>(str);
            Debug.Log("所在地信息:" + t.content.address_detail.city);
            //获取天气
            //StartCoroutine(RequestWeather(weatherTool.GetWeatherId(t.content.address_detail.city)));
            
        }
    }

2.还可以通过获取本地公网ip,再查询ip所在地获取,获取到地址后,在本地json数据中对应找出编号

二、根据所在地编号获取信息

代码如下(示例):

IEnumerator RequestWeather(int id)
    {
        Debug.Log("所在地编号:" + id);
        UnityWebRequest request = UnityWebRequest.Get(Weatherurl + id.ToString());
        yield return request.SendWebRequest();
        string str = request.downloadHandler.text;
        if (string.IsNullOrEmpty(request.error))
        {
            Debug.Log(str);
            weatherTool.WeathBody t = LitJson.JsonMapper.ToObject<weatherTool.WeathBody>(str);
            Debug.Log(t.data.forecast[0].type);
        }
    }

总结

根据具体的返回文件来编写读取类。大概就是记录下自己的想法
具体请看:https://blog.csdn.net/SnoopyNa2Co3/article/details/89853201
(这一篇里提到的请求网站是免费,但好像没有精确到区一级,和风天气(免费版)精确到区级但获取信息没有这个多,具体看个人需求吧。)
注意:最好做好缓存,不要频繁请求,可能会被封ip。
还有什么收费的,免费的获取天气的网站请看:https://www.jianshu.com/p/e3e04cf3fc0f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值