我想獲取Twitter用戶的國家/地區名稱。如何從Java中的城市名稱中查找國家/地區名稱?
爲此,我從<location>
標籤中獲得了位置,其中一些用戶寫了他們國家的名字,一些寫了他們的城市名稱,一些寫了他們州的名字。
我想獲取所有用戶的國家名稱。我怎樣才能做到這一點?
我想獲取Twitter用戶的國家/地區名稱。如何從Java中的城市名稱中查找國家/地區名稱?
爲此,我從<location>
標籤中獲得了位置,其中一些用戶寫了他們國家的名字,一些寫了他們的城市名稱,一些寫了他們州的名字。
我想獲取所有用戶的國家名稱。我怎樣才能做到這一點?
一種方法是使用Google Maps API(儘管它可能是矯枉過正)。例如,假設有人將他們的國家列爲「雅加達」(實際上是印度尼西亞的一個城市)。然後,你將提交下列地圖API請求:
http://maps.googleapis.com/maps/api/geocode/json?address=Jakarta&sensor=false
它返回一個JSON對象。然後,使用您最喜歡的JSON解析器解析該解析器,然後提取「地址組件」字段的「long_name」字段,並鍵入「country」。在這種情況下,即「印度尼西亞」。
您可以使用Google地圖的自動填充腳本獲取城市的可能國家/地區。它的工作原理是這樣的:當你鍵入「紐約」時,它建議你「紐約,美國」。但請記住,你不能總是從城市名稱中得到國名:德國和康涅狄格州都有柏林。
+1,ESP。在德國和康涅狄格州的柏林。 – Ghost 2012-02-16 07:52:30
感謝您的回覆。 – 2012-02-16 08:02:28
嘗試使用方便的許可證(例如GeoWorldMap from here)查找資源文件或數據庫。無論如何,你無法從Twitter用戶那裏獲得準確的信息,他們在他們的個人資料中寫的內容可能是錯誤的。所以我會使用靜態資源並儘可能多地解碼。
感謝您的回覆。:) – 2012-02-16 08:04:12
你可以在YQL使用地理表: http://developer.yahoo.com/yql/console/#h=select%20*%20from%20geo.places%20where%20text%3D%22jakarta%22
例子查詢:select * from geo.places where text="jakarta"
非常感謝克里斯。 – 2012-02-16 08:02:50
我知道了.. :) :) :) :) :) – 2012-02-16 08:03:38
也許這是說明顯而易見的,但是您應該保留一個公認的國家/地區名稱(和常見拼寫錯誤)的列表,以便您只在您執行Maps API請求時還沒有認識到這個國家。 – 2012-02-16 08:04:58