微软有一个天气API非常类似于谷歌的(现在看来是彻底死了)。 我已经转换我的应用程序之一到他们的饲料,但我一直无法找到所有可能的天气条件下的列表。
这是记录得相当好了谷歌的天气API,但我无法找到的MSN API天气条件的列表。
FWIW,一个范例网址找回数据使用MSN是:
http://weather.service.msn.com/data.aspx?weadegreetype=F&culture=en-US&weasearchstr=Chicago,IL (服务不可用了(2016年1月))
任何人都可以提供一些线索在可能的条件? 我需要他们,这样我可以在条件文本转换为一个图标来代替。
我决定去一个稍微不同的路线,并计算出基于从XML提供的图标(skycode和skycodeday)的条件。
这里是什么,我想出了一个清单。 希望这将是别人从谷歌的天气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 - N / A
- 45 - 零星阵雨(夜间)
- 46 - 散乱阵雪(夜间)
- 47 - 零星雷暴(夜间)
这里是我的功能,轻松地将谷歌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);
}
似乎有很多误传的事情,每当微软是个问题。 今天我测试了MSN天气API; 它没有返回; 并返回天气数据,每小时。
我刚才做了如下[可能非标准]查询:“ http://weather.service.msn.com/data.aspx?weasearchstr=ny,NY&culture=en-US&weadegreetype=C&src=msn ”
而且它没有返回请求正是:
<weatherdata xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><weather weatherlocationcode="wc:USNY0309" weatherlocationname="New York, NY" url="http://a.msn.com/54/en-US/ct40.782,-73.832?ctsrc=msn" imagerelativeurl="http://blob.weather.microsoft.com/static/weather4/en-us/" degreetype="C" provider="Foreca" attribution="http://www.foreca.com/" attribution2="Foreca" lat="40.782" long="-73.832" timezone="-5" alert="" entityid="10109777" encodedlocationname="New+York%2C+NY"><current temperature="4" skycode="29" skytext="Partly Cloudy" date="2016-02-07" observationtime="18:00:00" observationpoint="New York, NY" feelslike="2" humidity="62" winddisplay="9 km/h East" day="Sunday" shortday="Sun" windspeed="9 km/h" /><forecast low="-3" high="5" skycodeday="31" skytextday="Clear" date="2016-02-06" day="Saturday" shortday="Sat" precip="" /><forecast low="1" high="7" skycodeday="28" skytextday="Mostly Cloudy" date="2016-02-07" day="Sunday" shortday="Sun" precip="10" /><forecast low="-3" high="3" skycodeday="16" skytextday="Snow" date="2016-02-08" day="Monday" shortday="Mon" precip="90" /><forecast low="0" high="1" skycodeday="30" skytextday="Partly Sunny" date="2016-02-09" day="Tuesday" shortday="Tue" precip="90" /><forecast low="-2" high="5" skycodeday="28" skytextday="Mostly Cloudy" date="2016-02-10" day="Wednesday" shortday="Wed" precip="50" /><toolbar timewindow="60" minversion="1.0.1965.0" /></weather><weather weatherlocationcode="wc:USNY0996" weatherlocationname="New York, NY" url="http://a.msn.com/54/en-US/ct40.714,-74.006?ctsrc=msn" imagerelativeurl="http://blob.weather.microsoft.com/static/weather4/en-us/" degreetype="C" provider="Foreca" attribution="http://www.foreca.com/" attribution2="Foreca" lat="40.714" long="-74.006" timezone="-5" alert="" entityid="23164" encodedlocationname="New+York%2C+NY"><current temperature="5" skycode="29" skytext="Partly Cloudy" date="2016-02-07" observationtime="18:00:00" observationpoint="New York, NY" feelslike="4" humidity="58" winddisplay="7 km/h East" day="Sunday" shortday="Sun" windspeed="7 km/h" /><forecast low="-7" high="4" skycodeday="31" skytextday="Clear" date="2016-02-06" day="Saturday" shortday="Sat" precip="" /><forecast low="1" high="7" skycodeday="28" skytextday="Mostly Cloudy" date="2016-02-07" day="Sunday" shortday="Sun" precip="10" /><forecast low="-2" high="3" skycodeday="16" skytextday="Snow" date="2016-02-08" day="Monday" shortday="Mon" precip="80" /><forecast low="-1" high="1" skycodeday="30" skytextday="Partly Sunny" date="2016-02-09" day="Tuesday" shortday="Tue" precip="80" /><forecast low="-3" high="5" skycodeday="30" skytextday="Partly Sunny" date="2016-02-10" day="Wednesday" shortday="Wed" precip="50" /><toolbar timewindow="60" minversion="1.0.1965.0" /></weather></weatherdata>
这是2016年4月,它看起来像微软天气数据仍然透进来: 华盛顿州的天气数据 (链接是从,在OP的帖子显示的不同-这是目前已停产)。
在链接的“wealocations”参数是每个气象采集点不同; 例如,“USWA0367”是华盛顿州雷蒙德。 你可以从你的天气位置的代码在这里。
我们写信通知您,微软的天气API将不再提供下载,将被停止,因为2015年4月15日,这意味着它将不再提供气象数据。 因此,请从您的任何产品或当前使用它的应用程序删除Microsoft天气API。
这里是谁可能是能够支持你的需要,如果你有兴趣获得一个备用的天气API外部供应商的名单:
http://api.accuweather.com/
http://www.wunderground.com/weather/api/d/pricing.html
https://developer.forecast.io/
免责声明:微软和微软天气不隶属于或与上述任何企业以任何方式有关。
感谢微软天气团队