2009-11-30 19 views
29

Estoy creando una aplicación (PHP) que toma los datos meteorológicos de yahoo de la fuente RSS gratuita y los correlaciona con un hexágono de color basado en datos recuperados de la fuente RSS. El problema que estoy teniendo es encontrar la manera de agarrar el código de ubicación o WOEID sin hacerlo manualmente.Yahoo Weather API WOEID recuperación

yahoos API devuelve un canal RSS, siempre y cuando proporcione una WOEID ->http://weather.yahooapis.com/forecastrss?w=4097

¿Hay una forma ética de hacer esto? Mi conocimiento de principiante me dice que tengo que escribir un script que busque Yahoo usando el término y tome el primer WOEID, pero supongo que yahoo no quiere que los guiones lo hagan y parece demasiado complicado ... Si no, ¿hay alguna alternativa? API que me facilitaría esto?

Gracias!

+1

Para cualquiera tropezar sobre esta cuestión en 2013: Yahoo! mató APIs WOEID. Publicamos sobre esto aquí: http://soup.metwit.com/post/47181933854/an-alternative-to-yahoo-weather-api –

Respuesta

64

¿Por qué no usar Yahoo! Servicio GeoPlanet para resolver un lugar a un WOEID? ¿O usar el servicio YQL para acceder a GeoPlanet a través de su tabla?

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

o

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

No hay necesidad de raspar.

Saludos

G

(Revelación; la que trabajo Yahoo! y soy parte del grupo detrás WOEIDs y GeoPlanet)

+2

Gracias Vicchi! ¡Ustedes hacen un trabajo maravilloso al hacer que sea fácil para principiantes como yo aprender! – askon

+2

Holy Smokes, esta respuesta es de clase. Justo lo que estaba buscando – Ryan

+0

obtengo el ID del país, pero ¿en qué mesa se encuentra la ciudad rural? – lolalola

5

me dieron alguna información útil a partir de: http://developer.yahoo.com/geo/geoplanet/

Y

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

  1. Encuentre la WOEID de un hito importante: http://where.yahooapis.com/v1/places.q ('Sydney% 20opera% 20house') appid = [yourappidhere]

  2. resolver un WOEID a un lugar:? http: // en. yahooapis.com/v1/place/2507854?appid=[yourappidhere]

  3. Encuentra la WOEID de un lugar específico:? http://where.yahooapis.com/v1/places.q ('Northfield% 20mn% 20usa') appid = [yourappidhere]

  4. obtener una gama de WOEIDs que responden a un determinado lugar, ordenado por el más probable: http://where.yahooapis.com/v1/places.q ('Springfield'); start = 0; count = 5 appid = [yourappidhere]

  5. encontrar al padre de un dado? WOEID (y devolver un registro detallado): http://where.yahooapis.com/v1/place/638242/parent?select=long & appid = [yourappidhere]

  6. volver al Placename para una dada en WOEID un lenguaje específico (donde existe): http://where.yahooapis.com/v1/places.q ('usa')?lang = fr & appid = [yourappidhere]

  7. para obtener la representación de un lugar en formato JSON: http://where.yahooapis.com/v1/place/2487956?format=json & appid = [yourappidhere ]

  8. Para obtener una lista de las geografías que el vecino un WOEID específica: http://where.yahooapis.com/v1/place/12795711/neighbors?appid=[yourappidhere]

1

Yahoo ! Geo Technologies se complace en anunciar la disponibilidad del soporte de PlaceFinder en YQL. La tabla geo.placefinder permite a los usuarios realizar solicitudes a PlaceFinder a través de consultas YQL. La nueva tabla proporciona varias formas diferentes de acceder a PlaceFinder. Se puede obtener una descripción de las solicitudes y los parámetros admitidos utilizando http://query.yahooapis.com/v1/public/yql?q...&appid=test. Aquí están algunos ejemplos:

geocodificación una dirección de calle (1600 Pennsylvania Ave, Washington, DC), utilizando de forma libre formato de entrada:

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 

Geocodificar una dirección de calle (701 First Ave, Sunnyvale, CA 94089) utilizando varias líneas formato de entrada:

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 

Geocodificar un código de aeropuerto (SFO):

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

geocodificación un punto de interés (POI) en francés:

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 

geocodificación inversa utilizando coordenadas geográficas:

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 

geocodificación una dirección de calle (701 First Ave, Sunnyvale, CA 94089) usando el formato de entrada analizada :

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 

la determinación de los cruces de calles más cercanas y zona horaria de una dirección:

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 

Este ejemplo ilustra la capacidad YQL para seleccionar sólo los campos especificados de la respuesta