web-dev-qa-db-ja.com

Yahoo Weather API WOEID取得

私は、無料のRSSフィードからyahoo天気データを取得し、RSSフィードから取得したデータに基づいて色の1​​6進数と相関させるアプリ(PHP)を作成しています。私が抱えている問題は、手動で行わずにロケーションコードまたはWOEIDを取得する方法を見つけることです。

Yahoos APIは、WOEIDを提供する限り、RSSフィードを送り返します-> http://weather.yahooapis.com/forecastrss?w=4097

これを行う倫理的な方法はありますか?私の初心者の知識では、用語を使用してyahooを検索し、最初のWOEIDを取得するスクリプトを作成する必要があることを教えてくれますが、yahooはこれを実行するスクリプトを望まず、複雑すぎるように思われます...そうでない場合、代替手段はありますかこれを簡単にするAPIはありますか?

ありがとう!

29
askon

なぜYahoo!場所をWOEIDに解決するGeoPlanetサービス?または、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の背後にあるグループの一員です)

65
Gary Gale

私はいくつかの有用な情報を得ました: 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]

5
NguyenDat

Yahoo! Geo Technologiesは、YQLでのPlaceFinderサポートの利用可能性を発表します。 geo.placefinderテーブルを使用すると、YQLクエリを介してPlaceFinderにリクエストを送信できます。新しいテーブルは、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

複数行の入力形式を使用した住所のジオコーディング(701 First Ave、サニーベール、カリフォルニア州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(Point of Interest)のジオコーディング:

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機能を示しています

1
OnlyMAJ