5

Stavo usando l'API di Google Meteo per recuperare le informazioni meteo, ma a quanto pare Google aveva interrotto il servizio. E sto cercando di passare ora alle API di Yahoo Weather.Ottieni WOEID dal nome della città?

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

Tuttavia, c'è un modo per ottenere il WOEID solo da JavaScript? Perché allora posso solo fare

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

e il gioco è fatto.

che dice sulla Yahoo weather API page,

per trovare il tuo WOEID, sfogliare o cercare per la tua città dalle intemperie home page. WOEID è nell'URL della pagina di previsione per quella città. Puoi anche ottenere il WOEID inserendo il tuo codice di avviamento postale sulla home page.

Ma io voglio ottenerlo da JavaScript, non manualmente andare a weather.yahoo.com e scoprire il WOEID.

Non mi interessa la politica di Cross-Origin perché la sto usando in un'estensione di Chrome e non si applica.

risposta

6

Va bene ho avuto modo di conoscere dai vostri commenti cosa esattamente si vuole

hai un nome luogo e si desidera ottenere il WOEID di il nome del luogo utilizzando javascript chiamate ajax

L'URL per ottenere che non è definito alcun dove è necessario utilizzare il servizio GeoPlanet per risolvere un posto a un WOEID

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

o si deve usare YQL diretto qualche cosa come questo (l'uso per cento codifica l'URL per il nome della città) in modo appropriato e provare a fare una chiamata AJAX a questo

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

Grazie, proverò più tardi. –

+0

Mi spiace di aver incollato l'URL sbagliato prima che l'URL corretto sia nella risposta –

+0

Un modo migliore è quello di ottenere i dati direttamente in json in modo che possa essere gestito più facilmente, rendendo format = json. Mi piace- http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=json – Anant

-1

Per ottenere il WOEID da nome della città

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

Problemi correlati