5

Ich habe die Google Weather API verwendet, um Wetterinformationen abzurufen, aber offenbar hat Google seinen Dienst eingestellt. Und ich versuche jetzt, zur Yahoo Weather API zu wechseln.Erhalten WOEID vom Stadtnamen?

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

Gibt es jedoch einen Weg, dass ich die WOEID nur durch JavaScript bekommen kann? Da kann ich dann einfach

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

tun und das ist es.

heißt es auf den Yahoo weather API page,

Ihre WOEID zu finden, durchsucht oder für Ihre Stadt aus der Wetter-Homepage suchen. Die WOEID befindet sich in der URL für die Vorhersageseite für diese Stadt. Sie können die WOEID auch erhalten, indem Sie Ihre Postleitzahl auf der Homepage eingeben.

Aber ich möchte es per JavaScript, nicht manuell gehen zu weather.yahoo.com und finden Sie die WOEID.

Die Cross-Origin-Richtlinie ist mir egal, weil ich sie in einer Chrome-Erweiterung verwende und sie nicht zutrifft.

Antwort

6

Okay, ich habe aus Ihre Kommentare wissen, was genau Sie wollen

Sie haben einen Ortsnamen und Sie möchten die WOEID bekommen, Dieser Ortsname mit JavaScript Ajax Anrufe

Die URL zu erhalten, dass nicht definiert ist, wo Sie GeoPlanet-Service verwenden müssen, um einen Platz zu einem WOEID

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

oder Sie haben einige direkte YQL zu verwenden, was so (Verwendung Prozent Kodierung in der URL für Ihren Stadtnamen) in geeigneter Weise und versuchen, einen Ajax-Aufruf zu dieser die WOEID Um

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

Danke, ich werde es später versuchen. –

+0

Sorry, ich habe die falsche URL früher eingefügt die richtige URL ist in der Antwort –

+0

Ein besserer Weg ist es, Daten direkt in Json zu bekommen, so dass es leichter gehandhabt werden kann, indem man format = json macht. Wie- http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.places%20where%20text%3D%22Place%20name%22&format=json – Anant

1
+0

Um, können Sie ein Beispiel oder ein paar Codes erstellen? Weil ich nicht wirklich weiß, wie man seine API benutzt ... –

+1

Verwenden Sie einfach diese URI http://where.yahooapis.com/v1/place/2507854?appid=[yourapphere] –

+0

es ist das gleiche wie die Vorhersage api Sie Verwenden Sie ... – Rafay

-1

tun durch Stadtname

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