首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java和wunderground获取天气数据

使用java和wunderground获取天气数据
EN

Stack Overflow用户
提问于 2013-11-24 17:25:49
回答 2查看 5.6K关注 0票数 1

我正在尝试用java获取一些天气数据。我使用下面的java从wunderground.com获取数据

https://code.google.com/p/wunderground-core/

他们在自己的网站上给出的示例代码对(德国的Dortmund)来说是可行的。然而,在美国,当我将键从多特蒙德更改到波士顿时,会出现空指针错误。知道我可能做错什么了吗?请试一试,并留下意见/建议。谢谢!

代码:

代码语言:javascript
复制
import de.mbenning.weather.wunderground.api.domain.DataSet;
import de.mbenning.weather.wunderground.api.domain.WeatherStation;
import de.mbenning.weather.wunderground.api.domain.WeatherStations;
import de.mbenning.weather.wunderground.impl.services.HttpDataReaderService;


public class weather {

    public static void main(String[] args)
    {

    // create a instance of a wunderground data reader
    HttpDataReaderService dataReader = new HttpDataReaderService();

    // select a wunderground weather station (ID "INORDRHE72" = Dortmund-Mengede)
    WeatherStation weatherStation = WeatherStations.ALL.get("INORDRHE72");
    // KMABOSTO22 is the ID for Boston South end
    //WeatherStation weatherStation = WeatherStations.ALL.get("KMABOSTO32");

    // set selected weather station to data reader
    dataReader.setWeatherStation(weatherStation);

    // get current (last) weather data set from selected station
    DataSet current = dataReader.getCurrentData();

    // print selected weather station ID
    System.out.println(weatherStation.getStationId());

    // print city, state and country of weather station
    System.out.println(weatherStation.getCity() + " " + weatherStation.getState() + " " + weatherStation.getCountry());

    //`enter code here` print datetime of measure and temperature ...
    System.out.println(current.getDateTime() + " " + current.getTemperature());
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-24 17:59:36

请查看Wunderground的源代码。

代码语言:javascript
复制
svn checkout http://wunderground-core.googlecode.com/svn/trunk/ wunderground-core-read-only

在包de.mbenning.weather.wunderground.api.domain中有一个名为WeatherStations.的类在那里,您可以在代码中找到您可以调用的所有气象站的内容。现在只有几个:

代码语言:javascript
复制
public static final Map<String, WeatherStation> ALL = new HashMap<String, WeatherStation>();
static {
    ALL.put("INRWKLEV2", INRWKLEV2_KLEVE);
    ALL.put("INORDRHE110", INORDRHE110_GOCH);
    ALL.put("IDRENTHE48", IDRENTHE48_COEVORDEN);
    ALL.put("IZEELAND13", IZEELAND13_GOES);
    ALL.put("INORDRHE72", INORDRHE72_DORTMUND);
    ALL.put("INOORDBR35", INOORDBR35_BOXMEER);
}; 

其他人都不行。

票数 1
EN

Stack Overflow用户

发布于 2014-01-09 12:05:32

它的工作原理是:您可以实例化在WUnderground上注册的每个气象站。可以将站id设置为结构参数:

代码语言:javascript
复制
WeatherStation aWeatherStation = new WeatherStation("INORDRHE72");

HttpDataReaderService dataReader = new HttpDataReaderService();
dataReader.setWeatherStation(aWeatherStation );

Double currentTemperature = dataReader.getCurrentData().getTemperature();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20177515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档