it-swarm.com.de

Erhalten Sie eine WOEID von Lat, Long mit Yahoos API

ich suchte eine Weile, fand aber nichts, das meinem Problem ähnelt.

ich versuche, die YAHOO-Wetter-API zu verwenden, zum Beispiel: http://weather.yahooapis.com/forecastrss?w=4097

ich kenne die WOEID in meinem Fall nicht, aber ich habe Längen- und Breitengrade.

meine Frage ist also: Gibt es eine Möglichkeit, die WOEID eines Ortes mithilfe von lat und langen Punkten zu erhalten?

18
choise

Dies ist jetzt über die kürzlich veröffentlichte PlaceFinder API verfügbar. Kudos an Yahoo! für ein weiteres wichtiges Stück des Geo-Puzzles.

18
MatsLindh

Yahoo! Mit der PlaceFinder-API können Sie eine entsprechende WOEID für ein Breiten-/Längenpaar finden. Betrachten Sie diesen Beispielaufruf für eine Webdienstmethode:

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

Sie können mit Anforderungsparametern entsprechend Ihren Bedürfnissen spielen, siehe Yahoo! PlaceFinder API-Dokumentation für mehr. Und Sie sollten appid durch Ihr Yahoo! appid, du kannst ein hier erstellen.

Diese Anfrage gibt eine solche Antwort zurück, die neben der WOEID viele nützliche Daten enthält:

{
    "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"
            }
        ]
    }
}
11
Ahmet Ardal

Dies verwendet nicht die API von Yahoo, aber ich habe diesen Blogeintrag gefunden: http://geomojo.org/?p=38

Erwähnung dieses Dienstes: http://www.geomojo.org/cgi-bin/reversegeocoder.cgi?long=-117.699444&lat=35.4775

Vielleicht kannst du das benutzen? Es hat mein Problem gelöst, ich hoffe es hilft bei der Lösung Ihres Problems.

8
salt.racer

Rufen Sie zuerst den Namen der Stadt mit diesem Code ab.

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);
               }];

Verwenden Sie dann diesen Städtenamen in der URL

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

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

Dies wird Json zurückgeben und Sie finden WOEID in diesem ...

{ "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"
      } ]
}
3
Haider

Es ist etwas lächerlich, dass Yahoo für WOEIDs über Lat/Lon keine Suchmethode bereitstellt - es steht seit 2008 auf ihrer Todo-Liste - aber das ist der Stand der Dinge.

Ich möchte Sie davor warnen, die von Geomojo vorgeschlagene vorgeschlagene Problemumgehung zu verwenden. Wenn es für Ihre Daten funktioniert, ist es großartig, aber der Yahoo-Dienst, auf den Geomojo angewiesen ist, ist unvorhersehbar. Geomojo verwendet den PlaceMaker von Yahoo, der Standortinformationen aus unstrukturiertem Text extrahiert, um eine WOEID zu erhalten. Dazu erstellen Sie ein Mikroformat, das Ihr Lat/Lon-Paar enthält, und senden es an PlaceMaker. Da PlaceMaker jedoch WOEIDs für Postleitzahlen zurückgibt, führt dies zu einem Auflösungsverlust und Sie können manchmal nicht einmal die Stadt für die übermittelten Koordinaten ermitteln. Ich habe eine Reihe von Beispielpunkten an der Ostküste der USA, wo die PlaceMaker-WOEIDs nicht den eingereichten Lat/Lon-Paaren entsprechen.

Seltsamerweise, wie HD schreibt, bietet nur die API von Flickr eine einfache Möglichkeit, eine WOEID von lat/lon nachzuschlagen . Die Flickr-Methode findByLatLon hat eine große Auflösung. Normalerweise wird eine Nachbarschaft (eine Ebene unter der Stadt) für ein Koordinatenpaar zurückgegeben.

3
Ryan

Sie können Flickr Reverse Geocoding API über YQL verwenden.

Hier ist ein Link zur YQL mit einer Beispielabfrage, um die WOEID für einen bestimmten Lat/Lon zu finden: http://developer.yahoo.com/yql/console/#h=select%20place. woeid% 20von% 20flickr.places% 20wo% 20lat% 3D43% 20und% 20lon% 3D-94

Die obige Abfrage kann direkt von Ihrer App aus mit dieser URL aufgerufen werden (XML/JSON-Formate verfügbar): http://query.yahooapis.com/v1/public/yql?q=select%20place. woeid% 20von% 20flickr.places% 20das% 20lat% 3D43% 20und% 20lon% 3D-94 & format = xml

2
ejunker

Sieht so aus, als hätten Sie es falsch verstanden. Dies ist die URL auf weather.yahoo.com: Weather.yahoo.com/united-states/illinois/chicago-2379574/[.____.( Das letzte Bit ist die WOEID für Chicago, d

WOEIDs sind in den GeoPlanet-Dokumenten beschrieben: http://developer.yahoo.com/geo/geoplanet/guide/concepts.html#woeids

2
Walter

Die frühere Yahoo Weather API ist veraltet. Die neue Yahoo-Wetter-API erfordert eine Abfragezeichenfolge, um das Wetter abzurufen.

Verwenden Sie die folgende Abfragezeichenfolge, um Wetterdaten nach Breiten- und Längengrad abzurufen.
"https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=\"(" + latitude + "," + longitude + ")\")&format=json"

ZB - https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20 (wählen Sie% 20woeid% 20from% 20geo aus .places (1)% 20where% 20text% 3D% 22 (31.63% 2C74.87)% 22) & format = json

0
Shaurya

Anstatt lng & lat zu verwenden, können Sie die aktuelle Online-IP-Adresse verwenden, um den Städtenamen abzurufen. Verwenden Sie dann den Yahoo GeoPlanet-Webdienst, um die WOEID abzurufen. Folgen Sie diesem Tutorial, um die Details zu erfahren: http://4rapiddev.com/php/get-woeid-of-a-city-name-from-ip-address-with-php/

0
Hoan Huynh

Es gibt ein Thema zu diesem Problem in den YDN-Foren http://developer.yahoo.net/forum/index.php?showtopic=69

Sieht aus, als wäre sie in der To-Do-Liste von 2008 vergraben. "Die Möglichkeit, Längen- und Breitengradkoordinaten einer WOEID zuzuordnen, aus der Informationen wie" Zip "und" State "abgeleitet werden können, wurde bereits als wertvolles Merkmal identifiziert Es ist auf unserer Erweiterungs-Anforderungsliste. "

Andere Zitate;

"Flickr hat eine Methode: flickr.places.findByLatLon, die eine WOEID zurückgibt, aber die Koordinaten werden auf drei Dezimalstellen gekürzt."

In diesem Thema schlägt ein Yahoo-Entwickler vor, den Rat unter http://geomojo.org/?p=38 als Übergangslösung zu verwenden.

0
Chaoley