Yahoo Weather API WOEID поиск - PullRequest
       36

Yahoo Weather API WOEID поиск

29 голосов
/ 01 декабря 2009

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

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

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

Спасибо!

Ответы [ 3 ]

65 голосов
/ 01 декабря 2009

Почему бы просто не использовать 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

Нет необходимости в соскобе.

Приветствия

G

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

5 голосов
/ 06 мая 2011

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

А

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

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

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

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

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

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

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

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

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

1 голос
/ 19 июля 2013

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

Геокодирование адреса улицы (1600 Pennsylvania Ave, Washington, DC) с использованием формата ввода свободной формы:

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

Геокодирование адреса улицы (First Ave 701, Саннивейл, Калифорния 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

Геокодирование адреса улицы (First01 Ave 701, Саннивейл, Калифорния 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 выбирать только указанные поля из ответа

...