MSN天气API条件清单?

Don*_*ton 11 xml api weather msn weather-api

微软的天气API非常类似于谷歌(现在似乎完全死了).我已将我的一个应用程序转换为其Feed,但我无法找到所有可能的天气状况列表.

对于Google的天气API来说,这很好地记录了,但我找不到MSN天气API的条件列表.

FWIW,使用MSN获取数据的示例URL是:

http://weather.service.msn.com/data.aspx?weadegreetype=F&culture=en-US&weasearchstr=Chicago,IL(不再提供服务(2016年1月))

任何人都可以了解可能的情况吗?我需要它们,以便我可以将条件文本转换为图标.

Don*_*ton 17

我决定采用略有不同的路线,根据XML 提供的图标(skycodeskycodeday)计算条件.

这是我想出的一个列表.希望从Google的天气API迁移对其他人有所帮助:

  • 0,1,2,3,4,17,35 - 雷暴
  • 5 - 雨/雪混合
  • 6 - 雨夹雪/雪地混合
  • 7 - 雨/雪/雨夹雪混合
  • 8,9 - 冰冷
  • 10 - 雨/雨夹雪混合
  • 11 - 小雨
  • 12 - 雨
  • 13 - 小雪
  • 14,16,42,43 - 雪
  • 15 - 暴雪
  • 18,40 - 阵雨
  • 19 - 灰尘
  • 20 - 雾
  • 21 - 阴霾
  • 22 - 烟雾
  • 23,24 - 风
  • 25 - 寒冷
  • 26 - 多云
  • 27,29,33 - 晴间多云(夜晚)
  • 28,30,34 - 部分多云
  • 31 - 晴朗(夜晚)
  • 32 - 清除
  • 36 - 热
  • 37,38 - 分散的雷暴
  • 39 - 分散阵雨
  • 41 - 分散的阵雪
  • 44 - 不适用
  • 45 - 零星阵雨(夜间)
  • 46 - 分散阵雪(夜间)
  • 47 - 分散的雷暴(夜晚)


MPa*_*ulo 5

这是我的功能,可以轻松将您的Google API代码转换为MSN API:

function skycode2image ($skycode)
{    

$daynight = "na";

$skycodes = array ( 
0 => 'thunderstorm', 
1 => 'thunderstorm',
2 => 'thunderstorm',
3 => 'thunderstorm',
4 => 'thunderstorm',
5 => 'rain_snow',
6 => 'sleet',
7 => 'rain_snow',
8 => 'icy',
9 => 'icy',  
10 => 'rain_snow', 
11 => 'showers',
12 => 'rain',
13 => 'flurries',
14 => 'snow', 
15 => 'snow', 
16 => 'snow', 
17 => 'thunderstorm',
18 => 'showers',
19 => 'dust',
20 => 'fog',
21 => 'haze',
22 => 'haze',
23 => 'windy',
24 => 'windy',
25 => 'icy',
26 => 'cloudy',
27 => 'mostly_cloudy',
28 => 'mostly_cloudy',
29 => 'partly_cloudy', 
30 => 'partly_cloudy',
31 => 'sunny',
32 => 'sunny',
33 => 'mostly_sunny',
34 => 'mostly_sunny',
35 => 'thunderstorm',
36 => 'hot',
37 => 'chance_of_tstorm',
38 => 'chance_of_tstorm', 
39 => 'chance_of_rain',
40 => 'showers',
41 - 'chance_of_snow',  
42 => 'snow',
43 => 'snow',
44 => 'na',
45 => 'chance_of_rain',
46 => 'chance_of_snow',
47 => 'chance_of_tstorm');

$condition =  $skycodes[$skycode];

if (in_array($skycode,array(27,29,31,33,31,45,46,47))) $daynight = 'night';
if (in_array($skycode,array(28,30,32,34,36,37,38,39,41))) $daynight = 'day';   

return array($condition,$daynight);

}
Run Code Online (Sandbox Code Playgroud)