2013-01-14 45 views

回答

1

您可以通過使用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

+1

是響應一個RSS feed。如果不是,我如何閱讀它? – AndroidDev

+1

這是一個XML響應,您可以使用XML解析器(DOM,SAX或pullparser)解析它 – Ahmad

+0

[search query]是什麼? – AndroidDev