MSN天气API条件列表?

11

微软有一款与Google非常相似的天气API(现在似乎已经完全消失了)。我将我的一个应用程序转换到了它们的数据源,但是我找不到所有可能的天气条件的列表。

Google的天气API有很好的文档记录,但我找不到MSN天气API的条件列表。

顺便说一下,使用MSN获取数据的示例URL如下:

http://weather.service.msn.com/data.aspx?weadegreetype=F&culture=en-US&weasearchstr=Chicago,IL (该服务已于2016年1月停止)

有人能够解释一下可能的条件吗? 我需要它们以便可以将条件文本转换为图标。


到目前为止,我所了解的是谷歌天气API被iGoogle使用,而iGoogle直到2013年11月才会停用。 - Sam B
很遗憾,看起来谷歌天气 API 永久地不可用了。这无疑是从 iGoogle 转型中的一部分(我个人也使用过它)。我有一个谷歌网站小部件也不再工作,因为它依赖于谷歌的天气 API。由于 API 是未记录的,我怀疑我们不会听到来自谷歌的官方回应。就我所知,微软的 API 也是未记录的,所以我想它也可能会突然消失或更改。 - Donavon Yelton
我想知道如何使用这个未记录的API来通过经纬度进行搜索。 - Kuroro
1
@Kuroro 我不确定它是否能处理纬度/经度。我在这个API上找到的信息非常少...大部分只是XML的存在,其余的都是我自己摸索出来的。苹果(我相信安卓也是如此)使得获取城市、州、国家等信息变得超级简单,我将其传递到URL中以获取正确的数据。对于桌面应用程序,您需要执行类似IP地理编码的操作。但我没有任何关于如何做到这一点的资源,因为我只开发过移动应用程序。 - Donavon Yelton
@DonavonYelton 你有使用这项服务的授权/许可吗?还是当 msn 将其停止时,你会再次切换?只是好奇。- paul - paul
显示剩余2条评论
5个回答

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 - 分散雷暴(晚上)

我也在MSN天气API中看到了这个词组“阵雨/晴朗”。 - Sam B
@SamBudda,为了我的目的,我制作了这个散乱的阵雨。你称它为铅笔,我称之为写字工具。;-) - Donavon Yelton
也可以将“Partly Cloudy”翻译为“部分晴朗”。 - c0dezer019

6
这是我的函数,可以轻松将你的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);

}

你能推荐一些字体图标,其中包含所有的天气图标吗? - B L Λ C K

2
似乎每当涉及到微软时,就会出现许多错误信息。今天我正在测试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>

1

现在是2016年4月,看起来微软天气数据仍在更新:华盛顿州的天气数据(链接不同于原帖中显示的已经停用的链接)。

链接中的“wealocations”参数对于每个天气采集点都是不同的;例如,“USWA0367”是华盛顿州雷德蒙德的编码。您可以从这里获取您的天气位置代码。


0
我们写信通知您,微软天气API将不再提供下载,并将于2015年4月15日停止使用,这意味着它将不再提供天气数据。因此,请从任何当前使用该API的产品或应用程序中移除微软天气API。
以下是一些可能能够支持您需求的外部提供商列表,如果您有兴趣获取替代天气API:
http://api.accuweather.com/ 
http://www.wunderground.com/weather/api/d/pricing.html 
https://developer.forecast.io/

声明:Microsoft和Microsoft Weather与上述任何公司均没有任何关联或联系。

谢谢 Microsoft Weather团队


服务还在继续吗?我仍然可以调用API。 - thatsIch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接