Я создаю приложение (PHP), которое принимает данные о погоде yahoo из бесплатного RSS-канала и сопоставляет его с шестнадцатеричным цветом на основе данных, полученных из RSS-канала. Проблема, с которой я сталкиваюсь, – найти способ захватить код местоположения или WOEID, не делая этого вручную.
API Yahoos отправляет обратно RSS-канал, пока вы предоставляете WOEID -> http://weather.yahooapis.com/forecastrss?w=4097
Есть ли этический способ сделать это? Мои знания начинающего говорят мне, что я должен написать скрипт, который будет искать yahoo, используя этот термин, и захватить первый WOEID, но я бы предположил, что yahoo не хочет, чтобы скрипты делали это, и это кажется сложным … Если нет, есть ли альтернатива API, которые сделают это проще для меня?
Благодаря!
Почему бы просто не использовать 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)
Я получил полезную информацию от: 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=%5Byourappidhere%5D
Найдите 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=%5Byourappidhere%5D
Верните имя плаката для данного ВИДЕО на конкретном языке (где он существует): http://where.yahooapis.com/v1/places.q ('usa')? Lang = fr & appid = [yourappidhere]
Получить представление места в формате JSON: http://where.yahooapis.com/v1/place/2487956?format=json&appid=%5Byourappidhere%5D
Чтобы получить список географических адресов, которые соседствуют с конкретным WOEID: http://where.yahooapis.com/v1/place/12795711/neighbors?appid=%5Byourappidhere%5D
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 выбирать только определенные поля из ответа