Android高德之旅(15)天气查询

作者: 大公爵 | 来源:发表于2017-11-10 15:40 被阅读158次

废话

说到吃饭...呸,说到天气,其实这个并不属于地图或者导航的范畴,为什么高德要提供天气查询呢?两个字:讲究。天气查询可以用来改善app体验的功能,如:在跑步类app中加入天气的提醒;或者出去自驾游提前知道要下雨,就可以造作准备,是不是很贴心。

简介

天气查询的请求参数类为 WeatherSearch,city(城市)为必设参数,type(气象类型)为可选,包含有两种类型:WEATHER_TYPE_LIVE为实况天气;WEATHER_TYPE_FORECAST为预报天气,默认为 实况天气。

WeatherSearchQuery query = new WeatherSearchQuery("北京", WeatherSearchQuery.WEATHER_TYPE_LIVE);
WeatherSearch weathersearch=new WeatherSearch(this);
weathersearch.setOnWeatherSearchListener(new WeatherSearch.OnWeatherSearchListener() {
        @Override
        public void onWeatherLiveSearched(LocalWeatherLiveResult liveResult, int i) {
            
        }

        @Override
        public void onWeatherForecastSearched(LocalWeatherForecastResult forecastResult, int i) {

        }
    });
weathersearch.setQuery(query);
weathersearch.searchWeatherAsyn();

代码超级简单,关键来看两个回调,第一个回调是实况天气,第二个回调是预报天气,先来看第一个。

@Override
public void onWeatherLiveSearched(LocalWeatherLiveResult result, int i) {
    LocalWeatherLive liveResult = result.getLiveResult();
    liveTimeTxt.setText(liveResult.getReportTime()); //时间
    liveWeatherTxt.setText(liveResult.getWeather()); //气象
    liveTemperatureTxt.setText(liveResult.getTemperature() + "°C"); //温度
    liveWindDirectionTxt.setText(liveResult.getWindDirection()); //风向
    liveWindPowerTxt.setText(liveResult.getWindPower() + "级"); //风力
    liveHumidityTxt.setText(liveResult.getHumidity() + "%"); //湿度
}

通过返回数据,我们可以获得丰富的天气情况,包括气温,气象,风向,风力,湿度,城市等等。


再来看第二个回调,预报天气,这里会返回未来四天的天气,而且这里的数据分为白天和夜晚,是不是很丰富。

@Override
public void onWeatherForecastSearched(LocalWeatherForecastResult result, int i) {
    LocalWeatherForecast forecastResult = result.getForecastResult();
    forecastTimeTxt.setText(forecastResult.getReportTime());
    List<LocalDayWeatherForecast> weatherForecast = forecastResult.getWeatherForecast();

    List<Forecast> forecastList = new ArrayList<>();
    for (LocalDayWeatherForecast forecast : weatherForecast) {
        String dayWeather = forecast.getDayWeather(); //白天天气
        String dayTemp = forecast.getDayTemp(); //白天温度
        String dayWindDirection = forecast.getDayWindDirection(); //白天风向
        String dayWindPower = forecast.getDayWindPower(); //白天风力
        String nightWeather = forecast.getNightWeather(); //夜晚天气
        String nightTemp = forecast.getNightTemp(); //夜晚温度
        String nightWindDirection = forecast.getNightWindDirection(); //夜晚风向
        String nightWindPower = forecast.getNightWindPower(); //夜晚风力

        forecastList.add(new Forecast(dayWeather, dayTemp, dayWindDirection, dayWindPower,
                nightWeather, nightTemp, nightWindDirection, nightWindPower));
    }

    ForecastAdapter adapter = new ForecastAdapter(this, forecastList);
    forecastListView.setAdapter(adapter);
}

我们把数据解析成一个List<Forecast> forecastList,然后用ListView展示出来。


总结

天气就说这么多,本期节目就到这里,感谢大家收看,我们下期再见~

相关文章

  • Android高德之旅(15)天气查询

    废话 说到吃饭...呸,说到天气,其实这个并不属于地图或者导航的范畴,为什么高德要提供天气查询呢?两个字:讲究。天...

  • 高德地图-天气免费接口

    高德官方天气查询API文档:高德天气查询地址[https://lbs.amap.com/api/webservic...

  • Android高德之旅(16)交通态势查询

    废话 交通态势信息是由当前时刻和未来某一时刻的交通状况信息构成,目前该功能仅对当前时刻对交通状况(路况)信息进行了...

  • 推荐几个天气Api接口 (可在小程序中使用)

    国内的地图软件基本是支持查询天气的唯独腾讯地图不支持天气查询,当然其他天气平台提供的接口也是够个人使用的 1、高德...

  • Android高德之旅(3)UI Setting

    废话 前两篇讲到了地图的基础显示和地图类型,今天来记录下高德地图交互相关的设置。地图的触摸事件很丰富,有单击、双击...

  • Android高德之旅(8)绘制线

    废话 绘制线会比绘制点稍微复杂点,抛开一些复杂的属性不谈,主要分为三类:实线、虚线、纹理。绘制线在自定义地图中是非...

  • Android高德之旅(9)绘制面

    废话 这篇文章记录下绘制面,绘制面其实就是绘制形状,形状有很多种,但是归纳起来我们只要两种,一是圆形,二是多边形。...

  • Android高德之旅(2)地图类型

    废话 今天继续我们的Android高德之旅,上一篇已经可以显示最基本的地图了,有基本的缩放、旋转功能,还有最后做的...

  • Android高德之旅(1)基础地图

    废话1 这个系列之前在CSDN上就发了,不过刚开始就因为公司项目忙搁置了,现在转移阵地到简书,希望这次能坚持把这个...

  • Android高德之旅(13)公交搜索

    废话 在LBS系统中怎能少了公交这个角色,大多数城市中,主要的公共交通工具还是公交车,高德地图当然会有相应的api...

网友评论

    本文标题:Android高德之旅(15)天气查询

    本文链接:https://www.haomeiwen.com/subject/favbmxtx.html