5

Użyłem Google Weather API do pobierania informacji o pogodzie, ale najwyraźniej Google przestał korzystać z usługi. Próbuję teraz przejść na Yahoo Weather API.Uzyskaj WOEID od nazwy miasta?

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

Jednak czy istnieje sposób, że mogę uzyskać WOEID tylko JavaScript? Bo wtedy mogłem po prostu zrobić:

i to wszystko.

mówi na Yahoo weather API page,

Aby znaleźć WOEID, przeglądać lub szukać swojego miasta od strony głównej pogody. WOEID znajduje się w adresie URL strony prognozy dla tego miasta. Możesz również uzyskać WOEID wpisując swój kod pocztowy na stronie głównej.

Ale chcę uzyskać to przez JavaScript, nie ręcznie przejdź do weather.yahoo.com i dowiedzieć się WOEID.

Nie przejmuj się polityką krzyżowego pochodzenia, ponieważ używam jej w rozszerzeniu Chrome i nie ma ona zastosowania.

Odpowiedz

6

Dobrze poznałem ze swoimi uwagami, co dokładnie chcesz

mieć nazwę miejsca i chcesz uzyskać WOEID z ta nazwa miejsca przy użyciu wywołań javascript ajax

Adres URL tego nie jest zdefiniowany, gdzie musisz użyć usługi GeoPlanet, aby rozwiązać problem z WOEID

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

LUB trzeba użyć bezpośredni YQL niektóre co jak ten (wykorzystanie procent kodowaniu w adresie URL nazwy miasta) właściwy i spróbować zrobić wywołanie ajax do tego

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=xml 
+0

Dzięki, spróbuję później. –

+0

Niestety wkleiłem nieprawidłowy adres URL, zanim poprawny adres URL jest w odpowiedzi –

+0

Lepszym sposobem jest uzyskanie danych bezpośrednio w jsonie, aby można było łatwiej manipulować, tworząc format = json. Podoba mi się- http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=json – Anant

-1

Aby uzyskać Woeid przez Nazwa miasta

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"); 
} 

See this article for more details