Вместо этого вы должны использовать другой тип данных YQL. Я пробовал этот запрос, и он отлично работает:
SELECT * FROM weather.bylocation WHERE location='Nice' AND unit="c"
Это консоль YQL
Я добавил unit="c"
, чтобы получить его по Цельсию, предполагая, что вы этого хотите. Если нет, используйте «f».
Внутренне таблица weather.bylocation
использует следующие две вещи:
- Поиск идентификатора «где на земле» (
woeid
) для местоположения,
- , а затем поиск погоды для этого идентификатора.
См. Внутреннюю часть этой таблицы ниже:
<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