У меня есть приложение, которое (помимо прочего) использует Yahoo Weather API для отображения погодных условий для местоположения, выбранного пользователем.
В диалоговом окне конфигурации, где пользователь может ввести местоположение, я хотел бы предложить автозаполнение, чтобы при вводе имени местоположения предлагался список соответствующих городов.
Я могу использовать YQL для получения местоположений, соответствующих префиксу, то есть ::1005*
select * from geo.places where text = 'Vie*'
но проблема в том, что не с каждым местоположением связана метеостанция, и я бы хотел пропустить их в моем списке автозаполнения.
Используя таблицы сообщества (таблица с именем weather.woeid), следующий запрос объединит предыдущий запрос с API погоды, возвращая только местоположения, в которых есть метеостанции:
select location from weather.woeid where w in (select woeid from geo.places where text = 'Vie*')
Это почти решает мою проблему, за исключением того факта, что предыдущий запрос (который дает тот же результат, что и вызов API погоды) не возвращает ни WOEID, ни какой-либо идентификатор, который я могу использовать для прямого запроса Weather API после настройки. Как я могу получить значение параметра соединения w? Я пробовал что-то вроде select w, location ...
, но, похоже, это не сработало.
Есть ли другой способ получить список мест (включая WOEID), соответствующих определенному префиксу, с которым у связаны погодные данные ?