29

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

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

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

ありがとう!

4

3 に答える 3

65

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の背後にあるグループの一員です)

于 2009-12-01T09:56:57.453 に答える
5

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]

于 2011-05-06T17:33:57.017 に答える
1

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

于 2013-07-19T13:22:19.567 に答える