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