web-dev-qa-db-ja.com

緯度と経度によるYahoo天気クエリ

Yahooクエリを使用して緯度と経度を介していくつかの気象データを取得したいと思います。しかし、このクエリは現在利用できないようです。クエリは以下のとおりです。

select * from weather.forecast where woeid in (SELECT woeid FROM geo.placefinder WHERE text="{lat},{lon}" and gflags="R")

このクエリは新しいものに変更されていますか?またはそれはもう存在しませんでしたか?前回このフォーマットを使用したのは約2か月前で、うまく機能しました。しかし、今ではデータをフェッチできません。 YQLコンソールの結果は次のとおりです。

{
 "error": {
  "lang": "en-US",
  "description": "Tenant 'query_yahooapis_com' access to 'Resource [tenantName=query_yahooapis_com, type=TABLE, name=geo.placefinder, locatorType=FILE, url=/home/y/share/manhattan/application/tenantBundles/yql_query_yahooapis_com_manhattan_v2/YQL-INF/restdefs/geo.placefinder.xml, useUrl=false]' is denied."
 }
}

私はすでにこの投稿を含むいくつかの調査を行っています: Yahooのwoeidを場所ごとに取得する方法は?

Yahooが天気を取得するためにこの緯度経度クエリをすでに終了しているというのは本当ですか?

10
squall leonhart

この回答 への最新の返信によると、テーブルgeo.placesに切り替えて、gflags="R"の部分を削除する必要があります。 YQLコンソールで試してみましたが、うまくいくようです。

select * from weather.forecast where woeid in (SELECT woeid FROM geo.places WHERE text="(latitude,longitude)")
22
greg

これは私にとってはうまくいきます(geo.places(1)テーブルに切り替える必要があります):

.。

query = "SELECT * FROM weather.forecast " +
            "WHERE woeid in (" +
            "SELECT woeid " +
            "FROM geo.places(1) " +
            "WHERE text=\"(%1$s,  %2$s)\") " +
            "AND u='c'";

... その後:

query = String.format(query, location.getLatitude(), location.getLongitude());