Подтвердить что ты не робот

Yahoo Weather API Поиск WOEID

Я создаю приложение (PHP), которое принимает данные о погоде yahoo из бесплатного RSS-канала и сопоставляет его с шестнадцатеричным цветом на основе данных, полученных из RSS-канала. Проблема, с которой я сталкиваюсь, - найти способ захватить код местоположения или WOEID, не делая этого вручную.

Yahoos API отправляет обратно RSS-канал, пока вы предоставляете WOEID → http://weather.yahooapis.com/forecastrss?w=4097

Есть ли этический способ сделать это? Мои знания начинающего говорят мне, что я должен написать script, который будет искать yahoo, используя этот термин, и захватить первый WOEID, но я бы предположил, что yahoo не хочет, чтобы скрипты делали это, и это кажется сложным... Если нет, какие-либо альтернативные API-интерфейсы, которые сделают это проще для меня?

Спасибо!

4b9b3361

Ответ 1

Почему бы просто не использовать Yahoo! Служба GeoPlanet для разрешения места в WOEID? Или использовать сервис YQL для доступа к GeoPlanet через его таблицу?

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

или

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

Не нужно очищать.

Приветствия

С

(Раскрытие: я работаю для Yahoo! и являюсь частью группы, стоящей за WOEID и GeoPlanet)

Ответ 2

Я получил полезную информацию от: http://developer.yahoo.com/geo/geoplanet/

И

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

  • Найдите WOEID значимого ориентира: http://where.yahooapis.com/v1/places.q ('sydney %20opera %20house')? appid = [yourappidhere]

  • Разрешить WOEID место: http://where.yahooapis.com/v1/place/2507854?appid= [yourappidhere]

  • Найдите WOEID определенного места: http://where.yahooapis.com/v1/places.q ('northfield %20mn %20usa')? appid = [yourappidhere]

  • Получите ряд WOEID, которые соответствуют данному месту, упорядоченные по наиболее вероятным: http://where.yahooapis.com/v1/places.q ('springfield'); start = 0; count = 5? appid = [yourappidhere]

  • Найдите родителя данного WOEID (и верните подробную запись): http://where.yahooapis.com/v1/place/638242/parent?select=long&appid= [yourappidhere]

  • Верните имя плаката для данного документа WOEID на определенном языке (где он существует): http://where.yahooapis.com/v1/places.q ('usa')? lang = fr & appid = [yourappidhere]

  • Чтобы получить представление места в формате JSON: http://where.yahooapis.com/v1/place/2487956?format=json&appid= [yourappidhere]

  • Чтобы получить список географических адресов, соседей которых соответствует конкретному WOEID: http://where.yahooapis.com/v1/place/12795711/neighbors?appid= [yourappidhere]

Ответ 3

Yahoo! Geo Technologies рада сообщить о наличии поддержки PlaceFinder в YQL. Таблица geo.placefinder позволяет пользователям делать запросы к PlaceFinder через запросы YQL. В новой таблице представлено несколько различных способов доступа к PlaceFinder. Описание поддерживаемых запросов и параметров можно получить с помощью http://query.yahooapis.com/v1/public/yql?q...&appid=test. Вот несколько примеров:

Геокодирование адреса (1600 Пенсильвания, Вашингтон, округ Колумбия) с использованием формата свободной формы:

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

Геокодирование адреса улицы (701 First Ave, Sunnyvale, CA 94089) с использованием многострочного формата ввода:

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

Геокодирование кода аэропорта (SFO):

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

Геокодирование интересующей точки (POI) на французском языке:

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

Обратное геокодирование с использованием географических координат:

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

Геокодирование адреса улицы (701 First Ave, Sunnyvale, CA 94089) с использованием разобранного формата ввода:

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

Определение ближайших перекрестков и часовой пояс для адреса:

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

Этот пример иллюстрирует способность YQL выбирать только указанные поля из ответа