Получить WOEID от имени города?

я использовал 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);
    }
});

однако, есть ли способ, которым я могу получить WOEID только JavaScript? Потому что тогда я мог просто сделать

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

и это все.

Он говорит о Yahoo погода API страница,

чтобы найти свой WOEID, просмотрите или найдите свой город из Главная страница погоды. WOEID находится в URL-адресе страницы прогноза для этого города. Вы также можете получить WOEID, введя свой почтовый индекс на главной странице.

но я хочу получить его JavaScript, а не вручную перейти к weather.yahoo.com и узнай, что такое "воид".

Не заботьтесь о политике Кросс-происхождения, потому что я использую ее в расширении Chrome, и она не применяется.

3 ответов


ладно я понял из ваших комментариев, что именно вы хотите

у вас есть имя места, и вы хотите получить WOEID этого имени места с помощью JavaScript ajax calls

url-адрес для получения, который не определен, где вам нужно использовать сервис 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

вы можете получить его от yahoo тоже http://developer.yahoo.com/geo/geoplanet/guide/concepts.html

ссылка на API


чтобы получить 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");
}

см. эту статью для более подробной информации