Yahoo Weather WebService - PullRequest
       72

Yahoo Weather WebService

3 голосов
/ 11 января 2011

Я пытаюсь найти способ получить некоторую информацию о погоде с помощью Yahoo Weather, используя Yahoo Query Language.

Поскольку я живу во Франции, в городе под названием Ницца, следующий запрос возвращает ошибку:

select * from weather.forecast where location='Nice'

У меня есть координаты широты и долготы, так как я могу передать их YQL для возврата информации о погоде? Это услуга по всему миру или только для США?

1 Ответ

4 голосов
/ 12 января 2011

Вместо этого вы должны использовать другой тип данных YQL. Я пробовал этот запрос, и он отлично работает:

SELECT * FROM weather.bylocation WHERE location='Nice' AND unit="c"

Это консоль YQL

Я добавил unit="c", чтобы получить его по Цельсию, предполагая, что вы этого хотите. Если нет, используйте «f».

Внутренне таблица weather.bylocation использует следующие две вещи:

  1. Поиск идентификатора «где на земле» (woeid) для местоположения,
  2. , а затем поиск погоды для этого идентификатора.

См. Внутреннюю часть этой таблицы ниже:

    <execute><![CDATA[
      default xml namespace ='http://where.yahooapis.com/v1/schema.rng'; 
      var x = y.query('select woeid from geo.places(1) where text="'+location+'"');
      var s = x.results;
      var woeid = s..woeid;
      var weather = y.rest('http://weather.yahooapis.com/forecastrss?w='+woeid+'&u='+unit).get().response;
      response.object = <weather>{weather}</weather>;
    ]]></execute>

Относительно вашего второго вопроса об использовании согласованных широты и долготы: Я не знаю, можете ли вы их использовать, но, может быть, вам это даже сейчас не нужно, верно?

Также хорошо читать:

http://developer.yahoo.com/weather/

http://developer.yahoo.com/geo/geoplanet/guide/concepts.html

...