2
我正在開發一個應用程序,我想包括的功能之一是能夠獲取用戶位置並將其轉換爲WOEID值,然後從Yahoo Weather RSS源獲取天氣數據。以下是說明WOEID值的要求的文檔: http://developer.yahoo.com/weather/在Android中獲取WOEID
我正在開發一個應用程序,我想包括的功能之一是能夠獲取用戶位置並將其轉換爲WOEID值,然後從Yahoo Weather RSS源獲取天氣數據。以下是說明WOEID值的要求的文檔: http://developer.yahoo.com/weather/在Android中獲取WOEID
您可以通過使用Yahoo! PlaceFinder API來獲得WOEID。首先,你需要申請一個API密鑰,那麼您可以把您的要求是這樣的:
http://where.yahooapis.com/geocode?q=[search query]&appid=[yourappidhere]
你會得到這樣的回答:
<ResultSet xmlns:ns1="http://www.yahooapis.com/v1/base.rng" version="2.0" xml:lang="en-US">
<Error>0</Error>
<ErrorMessage>No error</ErrorMessage>
<Locale>en-US</Locale>
<Found>1</Found>
<Quality>85</Quality>
<Result>
<quality>85</quality>
<latitude>38.898708</latitude>
<longitude>-77.036369</longitude>
<offsetlat>38.89719</offsetlat>
<offsetlon>-77.036537</offsetlon>
<radius>400</radius>
<name/>
<line1>1600 Pennsylvania Ave NW</line1>
<line2>Washington, DC 20500-0005</line2>
<line3/>
<line4>United States</line4>
<house>1600</house>
<street>Pennsylvania Ave NW</street>
<xstreet/>
<unittype/>
<unit/>
<postal>20500-0005</postal>
<neighborhood/>
<city>Washington</city>
<county>District of Columbia</county>
<state>District of Columbia</state>
<country>United States</country>
<countrycode>US</countrycode>
<statecode>DC</statecode>
<countycode>DC</countycode>
<uzip>20500</uzip>
<hash>4216F67AA1A143E9</hash>
<woeid>12766118</woeid> // This is what you need
<woetype>11</woetype>
</Result>
</ResultSet>
您可以解析爲<woeid>
標籤的響應。
編輯:
如果你有一個EditText和你想根據你從他的投入得到了所在城市的天氣,那麼你就必須這樣做:
String searchQuery = Uri.encode(myEditText.getText().toString());
現在你」你會有你的搜索查詢。所以e.g如果用戶鍵入:
德國漢堡
,那麼這將其轉換爲:
Hamburg_Germany
是響應一個RSS feed。如果不是,我如何閱讀它? – AndroidDev
這是一個XML響應,您可以使用XML解析器(DOM,SAX或pullparser)解析它 – Ahmad
[search query]是什麼? – AndroidDev