7

我正在尝试实现一个 iphone 应用程序,并且我正在集成 OpenWeatherMap 以检索当前天气。但是,我注意到返回的数据不正确(偏离华氏 39 度左右)。

下面是我用来检索美国丹佛当前天气的 JSON URL,使用 Lan/Lon 坐标,其中 xxxxxxxxxxxxx 是我的 APPID 键。

http://api.openweathermap.org/data/2.5/weather?APPID=xxxxxxxxxxxxx&lat=39.738539&lon=-104.981114

返回的温度为 291.05988。从阅读的文档中,这个温度单位是​​开尔文。所以要转换为华氏度,我取 291.05988 - 254.928 = 36.13188 华氏度。然而,目前的真实天气是 75 华氏度。这偏离了大约 39 度。

请告知我做错了什么。

谢谢 Loc

4

3 回答 3

14

对于那些稍后巡游的人,您不需要对华氏进行任何转换,您可以在您的请求中添加另一个查询参数:

华氏:单位=英制

...也是摄氏度的选项:单位=公制

示例是:

http://api.openweathermap.org/data/2.5/weather?q=London&appid=XXXXXX&units=imperial

在这里找到这个。

于 2015-12-16T21:09:44.867 回答
0

如果您在 post url 中使用,我发现了另一种方法:&units=metric或者有必要创建一个变量 city 和 key:

city = 'London'
key = 'some_key'

所以它看起来像这样:

url = 'http://api.openweathermap.org/data/2.5/weather?q={}&appid={}&units=metric'.format(city,key)
于 2020-11-17T20:06:17.030 回答
-5

我在回答我自己的问题...

我天真地相信了 OpenWeather 写的评论,并且从开尔文到华氏度的计算都错了。从此处的 OpenWeather 链接中,它指出:

开尔文温度。从此数字中减去 273.15 以转换为摄氏度。

那句话是错误的。要将开尔文转换为华氏度,请使用以下等式:

° F = 9/5(° K - 273) + 32

希望其他人不会像我一样被这种说法绊倒。

于 2014-08-15T05:37:32.530 回答