山东大学-地图圈系统

天气界面

利用的是和风天气的API

首先,需要进行api的申请,登录和风官网,进入控制台,申请一个新的web应用(我申请的是web应用,也可以申请安卓应用,然后利用相应的包和方法进行调用)

在这里插入图片描述

然后利用网络接口,请求数据,具体数据可以通过查看开发者文档来完成

在这里插入图片描述

在安卓应用中,利用okhttp进行网络请求,来请求天气数据

    private void gettody(){
        try {
            manager.asyncJsonObjectByUrl("https://devapi.qweather.com/v7/weather/now?key=你的key&location="+longitude+","+latitude, new OkManager.Fun4() {
                @Override
                public void onResponse(JSONObject jsonObject) {
                    System.out.println(jsonObject.toString());
                    try {
                        if(jsonObject.getInt("code")==200){
                            Gson gson = new Gson();
                            String s=jsonObject.getJSONObject("now").toString();
                            NowResponse.NowBean now=gson.fromJson(s,new TypeToken<NowResponse.NowBean>() {}.getType());

                            tv_temperature.setText(now.getTemp());
                            tv_info.setText(now.getText());
//                            tv_air_info.setText(now.getWindDir());
                            tvWeek.setText(DateUtils.getWeekOfDate(new Date()));//星期
                            String time = DateUtils.updateTime(now.getObsTime());//截去前面的字符,保留后面所有的字符,就剩下 22:00
                            tv_old_time.setText("最近更新时间:" + WeatherUtil.showTimeInfo(time) + time);
                            tvWindDirection.setText("风向     " + now.getWindDir());//风向
                            tvWindPower.setText("风力     " + now.getWindScale() + "级");//风力
                            wwBig.startRotate();//大风车开始转动
                            wwSmall.startRotate();//小风车开始转动
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });

        }catch (Exception e) {
            e.printStackTrace();
        }
    }

NowResponse实体类用来接收数据

package com.example.mymap.Dao;

import java.util.List;

public class NowResponse {


    private String code;
    private String updateTime;
    private String fxLink;
    private NowBean now;
    private ReferBean refer;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }

    public String getFxLink() {
        return fxLink;
    }

    public void setFxLink(String fxLink) {
        this.fxLink = fxLink;
    }

    public NowBean getNow() {
        return now;
    }

    public void setNow(NowBean now) {
        this.now = now;
    }

    public ReferBean getRefer() {
        return refer;
    }

    public void setRefer(ReferBean refer) {
        this.refer = refer;
    }

    public static class NowBean {
        /**
         * obsTime : 2020-07-15T07:35+08:00
         * temp : 27
         * feelsLike : 29
         * icon : 100
         * text : 晴
         * wind360 : 209
         * windDir : 西南风
         * windScale : 1
         * windSpeed : 4
         * humidity : 67
         * precip : 0.0
         * pressure : 1001
         * vis : 11
         * cloud : 0
         * dew : 20
         */

        private String obsTime;
        private String temp;
        private String feelsLike;
        private String icon;
        private String text;
        private String wind360;
        private String windDir;
        private String windScale;
        private String windSpeed;
        private String humidity;
        private String precip;
        private String pressure;
        private String vis;
        private String cloud;
        private String dew;

        public String getObsTime() {
            return obsTime;
        }

        public void setObsTime(String obsTime) {
            this.obsTime = obsTime;
        }

        public String getTemp() {
            return temp;
        }

        public void setTemp(String temp) {
            this.temp = temp;
        }

        public String getFeelsLike() {
            return feelsLike;
        }

        public void setFeelsLike(String feelsLike) {
            this.feelsLike = feelsLike;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }

        public String getWind360() {
            return wind360;
        }

        public void setWind360(String wind360) {
            this.wind360 = wind360;
        }

        public String getWindDir() {
            return windDir;
        }

        public void setWindDir(String windDir) {
            this.windDir = windDir;
        }

        public String getWindScale() {
            return windScale;
        }

        public void setWindScale(String windScale) {
            this.windScale = windScale;
        }

        public String getWindSpeed() {
            return windSpeed;
        }

        public void setWindSpeed(String windSpeed) {
            this.windSpeed = windSpeed;
        }

        public String getHumidity() {
            return humidity;
        }

        public void setHumidity(String humidity) {
            this.humidity = humidity;
        }

        public String getPrecip() {
            return precip;
        }

        public void setPrecip(String precip) {
            this.precip = precip;
        }

        public String getPressure() {
            return pressure;
        }

        public void setPressure(String pressure) {
            this.pressure = pressure;
        }

        public String getVis() {
            return vis;
        }

        public void setVis(String vis) {
            this.vis = vis;
        }

        public String getCloud() {
            return cloud;
        }

        public void setCloud(String cloud) {
            this.cloud = cloud;
        }

        public String getDew() {
            return dew;
        }

        public void setDew(String dew) {
            this.dew = dew;
        }
    }

    public static class ReferBean {
        private List<String> sources;
        private List<String> license;

        public List<String> getSources() {
            return sources;
        }

        public void setSources(List<String> sources) {
            this.sources = sources;
        }

        public List<String> getLicense() {
            return license;
        }

        public void setLicense(List<String> license) {
            this.license = license;
        }
    }
}

切换城市功能:

在右上角加号点击后出来一个弹窗,可以提供省市区、县的数据

效果展示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值