MSN天气API条件列表?

Posted

技术标签:

【中文标题】MSN天气API条件列表?【英文标题】:MSN weather API list of conditions? 【发布时间】:2012-08-21 22:44:47 【问题描述】:

Microsoft 有一个与 Google 非常相似的天气 API(现在看来完全死了)。我已将我的一个应用程序转换为他们的提要,但我无法找到所有可能的天气状况的列表。

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

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

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

谁能解释一下可能的情况?我需要它们,以便我可以将条件文本转换为图标。

【问题讨论】:

google 天气 api 是永远死了还是只是暂时停止了?我有大约 15 个使用它的 iPhone 应用程序,现在我被用户的挫败感和差评轰炸了 到目前为止,我所阅读的 google 天气 api 被 igoogle 使用,直到 2013 年 11 月才会死亡。 @SamBudda 不幸的是,Google 天气 API 似乎永远死了。毫无疑问,这是从 iGoogle(我个人也使用过)过渡的一部分。我有一个 Google 协作平台小部件,因为它依赖于 Google 的天气 API,所以它不再工作了。由于 API 没有记录,我怀疑我们会听到 Google 的官方回应。据我所知,微软的 API 也没有记录,所以我想它也可能会在没有警告的情况下消失或更改。 我只是想知道如何使用这个无证的api来按经纬度搜索。 @Kuroro 我不确定它能否处理纬度/经度。我发现关于这个 API 的信息非常少……主要是 XML 的存在,其余的我必须自己弄清楚。 Apple(我相信 android 也是如此)使获取城市、州、国家等变得非常容易,我在 URL 中传递这些信息以获取正确的数据。您需要为桌面应用程序执行 IP 地理编码之类的操作。尽管我没有为移动设备开发过任何东西,但我没有任何资源可供您使用。 【参考方案1】:

我决定走一条稍微不同的路线,并根据 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 "Showers / Clear" 中看到了这个 @SamBudda 为了我的目的,我制作了这个分散的阵雨。你叫它铅笔,我叫它书写工具。 ;-) 也将部分多云视为部分晴天。【参考方案2】:

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


【讨论】:

@你能推荐任何字体图标吗? 【参考方案3】:

我们写信通知您,Microsoft Weather API 将不再可供下载,并将于 2015 年 4 月 15 日停产,这意味着它将不再提供天气数据。因此,请从您当前使用它的任何产品或应用程序中删除 Microsoft Weather API。

如果您有兴趣获得备用天气 API,以下是可能能够满足您需求的外部提供商列表:

http://api.accuweather.com/ 
http://www.wunderground.com/weather/api/d/pricing.html 
https://developer.forecast.io/

免责声明:Microsoft 和 Microsoft Weather 与上述任何公司均无任何关联或关联。

谢谢你 微软天气团队

【讨论】:

服务是否继续?我仍然可以调用 API【参考方案4】:

似乎每当微软受到质疑时,就会出现很多错误信息。 我今天正在测试 MSN Weather 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>

【讨论】:

【参考方案5】:

现在是 2016 年 4 月,Microsoft Weather 数据似乎仍在通过:Washington state weather data(链接与 OP 帖子中显示的不同——现已停止提供)。

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

【讨论】:

以上是关于MSN天气API条件列表?的主要内容,如果未能解决你的问题,请参考以下文章

天气预报API:城市代码--“新编码”和“旧编码” 对比

天气预报API:免费接口测试(“旧编码”)

如何将 placemark.locality 放入我的天气 API?

天气预报API:中国气象频道腾讯天气--“新编码”接口的测试

免费天气api_高速稳定的天气数据_高速稳定的天气API接口

Flutter 使用 BloC 模式从 API 结果中获取列表元素