Yahoo Weather API - 各个城市的“未找到城市”错误

时间:2014-02-18 20:50:48

标签: jquery yahoo-weather-api

我不知道这是否是这个问题的地方,但问题在于:

我有一个网络应用程序,使用Yahoo Weather API从各个巴西城市获取天气数据。基本上,我从这个网站得到了所有的数字:http://woeid.rosselliot.co.nz/。在我得到所有的数字之后,我创建了一个网页,通过jj调用ajax来获取所有天气信息:

var woeid = 455997;
var url_yahoo = "http://weather.yahooapis.com/forecastrss?w=" + woeid + "&u=c";
$.ajax({
    url: 'http://ajax.googleapis.com/ajax/services/feed/load?output=xml&v=1.0&callback=?&q=' + encodeURIComponent(url_yahoo),
    dataType: 'json',
    cache: false,
    success: function(data) {
        data = $(data.responseData.xmlString).find("item");
        var condition_node = $(data).find("yweather\\:condition");
        var forecasts_node = {
            "today": $(data).find("yweather\\:forecast").eq(0),
            "tomorrow": $(data).find("yweather\\:forecast").eq(1),
            "after_tomorrow": $(data).find("yweather\\:forecast").eq(2)
        }
        var temperatures = {
            "today": {
                "now": condition_node.attr("temp"),
                "min": (forecasts_node['today']).attr("low"),
                "max": (forecasts_node['today']).attr("high")
            },
            "tomorrow": {
                "min": (forecasts_node['tomorrow']).attr("low"),
                "max": (forecasts_node['tomorrow']).attr("high")
            },
            "after_tomorrow": {
                "min": (forecasts_node['after_tomorrow']).attr("low"),
                "max": (forecasts_node['after_tomorrow']).attr("high")
            }
        }
        console.log( temperatures['today'] );
    }
})

上面的示例可以从各个城市获取所有温度。我需要做的就是用相同的名称更改变量上的WOEID号。 WOEID号为455997的城市是Sobral - CE - Brazil。基本上,这个ajax调用将打开URL“weather.yahooapis.com/forecastrss?w={WOEID_NUMBER}&u=c”,从生成的XML文件中提取所有信息,并在浏览器的控制台上显示所有温度,如下所示:

Object {now: 38, min: 25, max: 32}

去年工作正常,所有温度都显示在“温度”数组变量内。但大约两个月前,它停止了工作,在所有索引上都返回'undefined'。

Object {now: undefined, min: undefined, max: undefined}

出于调试目的,我尝试了由ajax(http://weather.yahooapis.com/forecastrss?w=455997&u=c)加载的url。 Yahoo应该返回与Sobral - CE - Brazil相关的所有预测信息,但它会返回以下XML:

<rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
    <channel>
        <title>Yahoo! Weather - Error</title>
        <description>Yahoo! Weather Error</description>
        <item>
            <title>City not found</title>
            <description>Weather Data not Available at the moment</description>
        </item>
    </channel>
</rss>

因此,我的webapp无法获取与我的城市相关的任何天气信息。同样的问题也发生在另一个巴西城市,如下图所示:

Sobral, Ceara, Brazil - WOEID 455997
Tianguá, Ceara, Brazil - WOEID 453622
São Benedito, Ceará, Brazil - WOEID 449511
Ubajara, Ceara, Brazil - WOEID 454340
Viçosa, Ceara, Brazil - WOEID 461578
Guaraciaba do Norte, Ceara, Brazil - WOEID 452761

有关您的信息,iOS 5的天气应用程序也会出现同样的问题。它无法显示上述某些城市的信息,几个月前工作正常。

我找不到有关此问题的最新信息。我不知道这是暂时的,还是意味着该服务将来会停止使用。有人和我有同样的问题吗?

0 个答案:

没有答案