18

しばらく検索しましたが、何も見つかりませんでした。これは私の問題と似ています。

たとえば、YAHOO Weather API を使用しようとしています: http://weather.yahooapis.com/forecastrss?w=4097

私の場合、WOEIDはわかりませんが、緯度と経度のポイントを取得しました。

私の質問は、緯度と経度を使用して場所のWOEIDを取得する方法はありますか?

4

11 に答える 11

18

これは、最近リリースされたPlaceFinder APIを通じて利用できるようになりました。Yahoo! に感謝します。Geo パズルのもう 1 つの重要なピースを提供してくれて。

于 2010-06-27T22:40:07.360 に答える
11

ヤフー!PlaceFinder API を使用すると、緯度/経度のペアに対応する WOEID を見つけることができます。次の Web サービス メソッド呼び出しの例を考えてみましょう。

http://where.yahooapis.com/geocode?location=37.42,-122.12&flags=J&gflags=R&appid=zHgnBS4m

必要に応じてリクエスト パラメータを操作できます。Yahoo!を参照してください。詳細については、 PlaceFinder API ドキュメントを参照してください。appid を Yahoo! に置き換える必要があります。appid は、ここで作成できます。

このリクエストは次のようなレスポンスを返します。これには、WOEID とともに多くの有用なデータが含まれています。

{
    "ResultSet": {
        "version": "1.0",
        "Error": 0,
        "ErrorMessage": "No error",
        "Locale": "us_US",
        "Quality": 99,
        "Found": 1,
        "Results": [
            {
                "quality": 99,
                "latitude": "37.420000",
                "longitude": "-122.120000",
                "offsetlat": "37.420000",
                "offsetlon": "-122.120000",
                "radius": 500,
                "name": "37.42,-122.12",
                "line1": "3589 Bryant St",
                "line2": "Palo Alto, CA  94306-4207",
                "line3": "",
                "line4": "United States",
                "house": "3589",
                "street": "Bryant St",
                "xstreet": "",
                "unittype": "",
                "unit": "",
                "postal": "94306-4207",
                "neighborhood": "",
                "city": "Palo Alto",
                "county": "Santa Clara County",
                "state": "California",
                "country": "United States",
                "countrycode": "US",
                "statecode": "CA",
                "countycode": "",
                "hash": "",
                "woeid": 12797284,
                "woetype": 11,
                "uzip": "94306"
            }
        ]
    }
}
于 2011-06-01T17:26:29.393 に答える
8

これは Yahoo の API を使用していませんが、次のブログ記事を見つけました: http://geomojo.org/?p=38

このサービスについて言及: http://www.geomojo.org/cgi-bin/reversegeocoder.cgi?long=-117.699444&lat=35.4775

もしかしてそれ使える?それは私の問題を解決しました。あなたの問題の解決に役立つことを願っています。

于 2010-01-21T07:04:11.860 に答える
3

最初に、このコードを使用して緯度/経度から都市名を取得します。

CLGeocoder *geocoder = [[CLGeocoder alloc] init] ;
[geocoder reverseGeocodeLocation:location
               completionHandler:^(NSArray *placemarks, NSError *error) {
                   if (error){
                       NSLog(@"Geocode failed with error: %@", error);
                       return;
                   }
                   CLPlacemark *placemark = [placemarks objectAtIndex:0];
                   NSLog(@"cityname - %@",placemark.locality);
               }];

次に、その都市名を以下の URL で使用します

https://search.yahoo.com/sugg/gossip/gossip-gl-location/?appid=weather&output=sd1&p2=pt&command=YOURCITYNAME

例 - https://search.yahoo.com/sugg/gossip/gossip-gl-location/?appid=weather&output=sd1&p2=pt&command=sydney

これによりjsonが返され、これでWOEIDを取得できます...

{ "l" : { "gprid" : "eIL89mltSzSfgDWdP7uyBA" },
  "q" : "sydney",
  "r" : [ { "d" : "pt:iso=AU&woeid=1105779&lon=151.021&lat=-33.8563&s=New South Wales&c=Australia&sc=NSW&n=Sydney, Australia",
        "k" : "Sydney"
      } ]
}
于 2014-01-13T13:35:05.343 に答える
3

Yahoo が緯度/経度を介した WOEID のルックアップ方法を提供していないのは、ややばかげています (2008 年以来、Yahoo の todo リストに載っています)。しかし、それが現状です。

Geomojo で提案された回避策を使用しないように注意してください。それがあなたのデータで機能するなら素晴らしいことですが、Geomojo が依存している Yahoo サービスは予測できません。Geomojo は、構造化されていないテキストから位置情報を抽出して WOEID を取得する Yahoo の PlaceMaker を使用します。これは、緯度/経度のペアを含むマイクロフォーマットを作成し、それを PlaceMaker に送信することによって行われます。ただし、PlaceMaker は郵便番号の WOEID を返すため、解像度が失われ、送信された座標の町さえ特定できない場合があります。PlaceMaker の WOEID が送信された緯度/経度のペアに対応していない、米国の東海岸にいくつかの例があります。

奇妙なことに、HD が書いているように、緯​​度/経度から WOEID を検索する簡単な方法を提供するのは Flickr の API だけです。Flickr の findByLatLon メソッドは解像度が優れています。通常、座標のペアに対して近隣 (町の 1 レベル下) が返されます。

于 2010-02-13T20:27:56.267 に答える
2

YQL を介して Flickr のリバース ジオコーディング API を使用できます。

以下は、特定の緯度/経度の WOEID を検索するためのサンプル クエリを含む YQL へのリンクです 。 %20where%20lat%3D43%20and%20lon%3D-94

上記のクエリは、次の URL を使用してアプリから直接呼び出すことができます (XML/JSON 形式が利用可能): http://query.yahooapis.com/v1/public/yql?q=select%20place.woeid%20from%20flickr.places %20where%20lat%3D43%20and%20lon%3D-94&format=xml

于 2010-03-22T19:23:43.790 に答える
2

やり方を間違えたようです。これは、weather.yahoo.com の URL です: weather.yahoo.com/united-states/illinois/chicago-2379574/ 最後のビットは、シカゴの WOEID、つまり 2379574 です。

WOEID は GeoPlanet のドキュメントで説明されています: http://developer.yahoo.com/geo/geoplanet/guide/concepts.html#woeids

于 2010-01-21T17:35:31.053 に答える
0

この問題に関するトピックが YDN フォーラム http://developer.yahoo.net/forum/index.php?showtopic=69にあります。

2008 年以降、to-do リストに埋もれているようです。「経度と緯度の座標のセットを、ZIP や州などの情報を取得できる WOEID にマッピングする機能は、価値ある機能としてすでに特定されており、それは私たちの機能強化要求リストにあります。」

その他の引用;

「Flickr には、WOEID を返す flickr.places.findByLatLon というメソッドがありますが、座標は小数点以下 3 桁に切り捨てられます。」

このトピックでは、Yahoo の開発者がhttp://geomojo.org/?p=38のアドバイスを暫定的な解決策として使用することも提案しています。

于 2010-01-26T04:12:33.480 に答える
0

lng & lat を使用する代わりに、現在のオンライン IP アドレスを使用して都市名を取得し、Yahoo GeoPlanet Web サービスを使用して WOEID を取得できます。詳細を取得するには、このチュートリアルに従ってください: http://4rapiddev.com/php/get-woeid-of-a-city-name-from-ip-address-with-php/

于 2011-07-19T16:22:44.410 に答える