6

我正在使用 Google Weather API 来获取天气信息,但显然 Google 已经停止了它的服务。我现在正在尝试切换到 Yahoo Weather API。

var WOEID = 2502265;  //random WOEID
$.ajax({
    url: "http://weather.yahooapis.com/forecastjson?w=" + WOEID + "&u=c",
    dataType: 'json',
    success: function(data) {
        console.log(data);
    }
});

但是,有没有办法只能通过 JavaScript 获取 WOEID?因为那时我能做到

http://www.google.com/ig/api?hl=en&weather=NYC

就是这样。

它在雅虎天气 API 页面上说,

要查找您的 WOEID,请从天气主页浏览或搜索您的城市。WOEID 位于该城市预测页面的 URL 中。您也可以通过在主页上输入您的邮政编码来获取 WOEID。

但我想通过 JavaScript 获取它,而不是手动去 weather.yahoo.com 并找出 WOEID。

不要关心跨域策略,因为我在 Chrome 扩展程序中使用它并且它不适用。

4

4 回答 4

8

好的,我从您的评论中知道您到底想要什么

您有一个地名,并且您想使用 javascript ajax 调用获取该地名的 WOEID

获取该网址的网址未定义任何您必须使用 GeoPlanet 服务将地点解析为 WOEID 的地方

http://where.yahooapis.com/v1/places.q('Place name')?appid=[yourappidhere] 

或者您必须适当地使用类似这样的 Direct YQL(在您的城市名称的 url 中使用百分比编码)并尝试对此进行 ajax 调用

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=xml
于 2012-09-15T05:21:32.140 回答
1

你也可以从雅虎那里得到它http://developer.yahoo.com/geo/geoplanet/guide/concepts.html

API 参考

于 2012-09-15T05:00:59.200 回答
0

2018 年 12 月更新:

绝对使用@aravind.udayashankara 上面提到的 Direct YQL 技术。我在 yboss api 上混了一阵子,结果发现它已经停产了(https://developer.yahoo.com/boss/search/),尽管雅虎仍然有大量的在线文档。

请尝试以下操作(它在页面外运行,但 URL 中有代码)。

yourLocation = "location" (zip, city name, etc.)

urlQuery = "https://query.yahooapis.com/v1/public/yql?q=select+*+from+geo.places+where+text%3D%22" + yourLocation + "%22&format=json"
于 2018-12-07T23:24:47.440 回答
-1

按城市名称获取 Woeid

using (WebClient wc = new WebClient())
{
string results = wc.DownloadString("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22" + CityName + "%22&format=xml");
}

有关更多详细信息,请参阅本文

于 2017-04-19T15:12:44.447 回答