Yahoo Weather API WOEID retrieval

je crée une application (PHP) qui prend des données météorologiques yahoo du flux RSS gratuit et les corréle avec un hexadécimal couleur basé sur des données extraites du flux RSS. Le problème, c'est de trouver un moyen de récupérer le code de localisation ou WOEID sans le faire manuellement.

Yahoos API renvoie un flux RSS aussi longtemps que vous fournissez un WOEID ->http://weather.yahooapis.com/forecastrss?w=4097

y a-t-il une façon éthique de faire cela? Mes connaissances de débutant il me dit que je dois écrire un script qui chercherait yahoo en utilisant le terme et attraperait le premier WOEID, mais je suppose que yahoo ne veut pas de scripts faisant cela et cela semble trop compliqué... Si ce n'est pas le cas, y a-t-il d'autres IPA qui me faciliteraient la tâche?

Merci!

29
demandé sur askon 2009-12-01 00:53:34

3 réponses

Pourquoi ne pas simplement utiliser le Yahoo! Service de géoplanette pour résoudre une place à un WOEID? Ou utiliser le service YQL pour accéder à Géoplanet via sa table?

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

ou

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

Pas besoin de racler.

Cheers

G

65
répondu Gary Gale 2009-12-01 09:56:57

j'ai reçu des informations utiles de: http://developer.yahoo.com/geo/geoplanet/

Et

http://developer.yahoo.com/geo/geoplanet/guide/api-reference.html#api-countries

  1. trouver le WEEID d'un point de repère important: http://where.yahooapis.com/v1/places.q('sydney%20opera%20house')?appid=[yourappidhere]

  2. Résoudre un WOEID à un lieu: http://where.yahooapis.com/v1/place/2507854?appid = [yourappidhere]

  3. trouver la WOEID d'un endroit spécifique: http://where.yahooapis.com/v1/places.q('northfield%20mn%20usa')?appid=[yourappidhere]

  4. obtenir une gamme de poids de laine qui correspondent à un endroit donné, commandé par le plus probablement: http://where.yahooapis.com/v1/places.q('springfield');start=0;count=5?appid=[yourappidhere]

  5. trouver le parent D'un enfant donné (et retourner un dossier détaillé): http://where.yahooapis.com/v1/place/638242/parent?select=long&appid = [yourappidhere]

  6. retourner le nom de la place pour un WOEID donné dans une langue spécifique (où il exister): http://where.yahooapis.com/v1/places.q('usa')?lang=fr&appid=[yourappidhere]

  7. pour obtenir la représentation D'un lieu dans le format JSON: http://where.yahooapis.com/v1/place/2487956?format=json&appid = [yourappidhere]

  8. pour obtenir une liste des géographies que le voisin un WOEID spécifique: http://where.yahooapis.com/v1/place/12795711/neighbors?appid = [yourappidhere]

5
répondu NguyenDat 2011-05-06 17:40:13

Yahoo! Geo Technologies est heureux d'annoncer la disponibilité de L'aide PlaceFinder dans YQL. Le geo.la table placefinder permet aux utilisateurs de faire des requêtes PlaceFinder via des requêtes YQL. Le nouveau tableau offre plusieurs façons différentes d'accéder à PlaceFinder. Une description des requêtes et des paramètres pris en charge peut être récupérée en utilisant http://query.yahooapis.com/v1/public/yql?q...&appid=test. Voici quelques exemples:

Géocodage d'une adresse de rue (1600 Pennsylvania Avenue à Washington, DC) à l'aide de la forme libre de format d'entrée:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%221600%20Pennsylvania%20Ave%2C%20Washington%2C%20DC%22&appid=test

géocodage d'une adresse municipale (701 First Ave, Sunnyvale, CA 94089) en utilisant un format d'entrée multiligne:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20line1%3D%22701%20First%20Ave%22%20and%20line2%3D%22Sunnyvale%2C%20CA%2094089%22&appid=test

Géocodage un code d'aéroport (OFS):

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22sfo%22&appid=test

géocodage d'un point d'intérêt (POI) en français:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%22Eiffel%20Tower%22%20and%20lang%3D%22fr%22&appid=test

géocodage inversé utilisant les coordonnées géographiques:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%2237.416275%2C%20-122.025092%22%20and%20gflags%3D%22R%22&appid=test

géocoder une adresse municipale (701 First Ave, Sunnyvale, CA 94089) en utilisant format d'entrée parsé:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20house%3D%22701%22%20and%20street%3D%22First%20Ave%22%20and%20city%3D%22Sunnyvale%22%20and%20state%3D%22CA%22%20and%20postal%3D%2294089%22&appid=test

détermination des rues transversales et du fuseau horaire les plus proches pour une adresse:

http://query.yahooapis.com/v1/public/yql?q=select%20line1%2C%20line2%2C%20line3%2C%20line4%2C%20cross%2C%20timezone%20from%20geo.placefinder%20where%20text%3D%22701%20First%20Ave%2C%20Sunnyvale%2C%20CA%22%20and%20flags%3D%22T%22%20and%20gflags%3D%22C%22&appid=test

cet exemple illustre la capacité de YQL à sélectionner seulement les champs spécifiés dans la réponse

1
répondu OnlyMAJ 2013-07-19 13:22:19