Frage

Ich suchte eine Weile, aber nichts gefunden, das ist simular zu meinem Problem.

Ich versuche, das YAHOO Wetter API zu verwenden, zum Beispiel: http: // Wetter. yahooapis.com/forecastrss?w=4097

ich weiß nicht, die WOEID in meinem Fall, aber ich habe Breiten- und Längen Punkte.

so meine Frage ist: gibt es eine Möglichkeit, die WOEID von einem Ort zu erhalten, indem lat und langen Punkten mit?

War es hilfreich?

Lösung

Dies ist nun über die kürzlich veröffentlichten PlaceFinder API . Ein großes Lob an Yahoo! für die Bereitstellung von weiteren wichtigen Teil des Geo-Puzzle.

Andere Tipps

Yahoo! PlaceFinder API ermöglicht es Ihnen, eine entsprechende WOEID für eine geographische Breite / Länge Paar zu finden. Betrachten Sie dieses Beispiel Web-Service-Methodenaufruf:

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

Sie können mit Anforderungsparameter spielen nach Ihren Bedürfnissen finden Sie unter Yahoo! PlaceFinder API-Dokumentation für mehr. Und Sie sollten mit Ihrem Yahoo! ersetzen appid appid, können Sie erstellen ein hier .

Diese Anfrage gibt eine Antwort wie die, die zusammen mit dem WOEID eine Menge nützlicher Daten enthalten:

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

Dies ist nicht mit Yahoos API, aber ich diese Blog-Post gefunden: http://geomojo.org/?p=38

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

Vielleicht können Sie verwenden? Es löste mein Problem, ich hoffe, es hilft Ihnen bei der Lösung.

Es ist etwas lächerlich, dass Yahoo keine Lookup-Methode für WOEIDs über lat liefern / lon - es ist auf ihrer To-do-Liste seit 2008 -. Aber das ist der Stand der Dinge

Ich warnt Sie davor, die vorgeschlagene Abhilfe bei Geomojo umgesetzt. Wenn es für Ihre Daten arbeitet, groß, aber der Yahoo-Dienst, dass Geomojo auf beruht ist unberechenbar. Geomojo verwendet Yahoos PlaceMaker, die Standortinformationen extrahiert aus unstrukturiertem Text ein WOEID zu bekommen. Es tut dies durch einen Mikroformat mit Ihrem lat / lon Paar zu schaffen und es zu PlaceMaker einreichen. Da jedoch PlaceMaker WOEIDs für Postleitzahlen gibt es einen Verlust an Auflösung und Sie werden manchmal nicht in der Lage sein, auch die Stadt für eingereicht Koordinaten zu identifizieren. Ich habe eine Reihe von Beispiel Punkte an der Ostküste der USA wo die PlaceMaker WOEIDs entsprechen nicht dem vorgelegten lat / lon-Paare.

Seltsam, wie HD schreibt, nur Flickr API bietet eine einfache Möglichkeit, nachschlagen eines WOEID von lat / lon . Flickrs findByLatLon Methode hat große Auflösung. Es wird in der Regel ein Viertel (eine Ebene unterhalb der Stadt) als Gegenleistung für ein Koordinatenpaar.

First Name der Stadt erhalten von lat / long diesen Code verwendet wird.

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, dass der Städtenamen in folgenden URL

https: // search .yahoo.com / sugg / gossip / Klatsch-gl-Standort /? appid = Wetter & 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 zurückkehren json und Sie finden get 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"
      } ]
}

Scheint, wie Sie es falsch herum bekam. 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, das heißt 2379574

WOEIDs sind in der GeoPlanet docs beschrieben: http://developer.yahoo.com/geo/geoplanet/guide/ concepts.html # woeids

Sie können Flickrs Reverse Geocoding API durch YQL verwenden.

Hier ist ein Link auf die YQL mit einem Beispiel Abfrage den WOEID für eine gegebene lat / lon zu finden: http://developer.yahoo.com/yql/console/#h=select%20place.woeid%20from%20flickr.places%20where%20lat%3D43%20and%20lon%3D-94

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

Es ist ein Thema, über dieses Thema zu den YDN Foren http: // developer.yahoo.net/forum/index.php?showtopic=69

Sieht aus wie es in der To-do-Liste begraben, aus dem Jahr 2008 „Die Fähigkeit, eine Reihe von Längen- und Breitengrad-Koordinaten zu einem WOEID abzubilden, aus denen Informationen wie ZIP und Staat kann abgeleitet werden, wurde bereits als eine identifiziert wertvolle Funktion, und es ist auf unserer Verbesserungsanforderungsliste. "

Andere Zitate;

„Flickr hat eine Methode. Flickr.places.findByLatLon, die eine WOEID zurückgibt, aber sie gestutzt Koordinaten auf drei Dezimalstellen“

In diesem Thema ein Yahoo dev schlägt auch vor, den Rat mit auf http://geomojo.org/?p = 38 als Zwischenlösung.

mit Anstatt lng & lat Sie die aktuelle Online-IP-Adresse verwenden können, um den Namen der Stadt zu erhalten dann Yahoo GeoPlanet Web-Service verwenden, um den WOEID zu bekommen. Folgen Sie dieser Anleitung um das Detail zu bekommen:

Das ehemalige Yahoo Wetter API hat wurde als veraltet. Das neue Yahoo Wetter API eine Abfragezeichenfolge erfordert Wetter.

Verwenden Sie die folgende Abfrage-String zu Wetterdaten von Breiten- und Längen zu bekommen -
"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"

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

Yahoo-API verwendet weather.com tatsächlich, geht so zu weather.com und für Ihr lokales Wetter suchen. Ich bin in Chicago so I 'Chicago, IL' eingegeben und hier ist der Link in meinem Browser Bar zeigt mein Wetter:

http://www.weather.com/weather/today/Chicago+IL+ USIL0225 ? lswe = chicago,% 20il & from = searchbox_localwx

In der Verbindung ist die WOEID - die USIL0225 ist

Sie können Ihnen die gleiche Art und Weise erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top