2011-10-25 117 views
1

我想寫一個腳本,只返回一個人的村莊,城鎮或城市。我正在使用以下YQL查詢,但console的結果太具體,他們首先給我鄰居。從flickr api提取城鎮/城市YQL

select * from flickr.places where lat=51.558418 and lon=-1.781985 and api_key=YOU_FLICKR_API_KEY 

這是我從控制檯查詢的結果。

<?xml version="1.0" encoding="UTF-8"?> 
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" 
    yahoo:count="1" yahoo:created="2011-10-25T09:35:50Z" yahoo:lang="en-US"> 
    <diagnostics> 
     <publiclyCallable>true</publiclyCallable> 
     <url execution-start-time="1" execution-stop-time="123" execution-time="122"><![CDATA[http://api.flickr.com/services/rest/?method=flickr.places.findByLatLon&lat=51.558418&lon=-1.781985]]></url> 
     <user-time>124</user-time> 
     <service-time>122</service-time> 
     <build-version>22535</build-version> 
    </diagnostics> 
    <results> 
     <places accuracy="16" latitude="51.558418" longitude="-1.781985" total="1"> 
      <place latitude="51.547" longitude="-1.802" 
       name="West Leaze, Swindon, England, GB, United Kingdom" 
       place_id="sddCvK9SW703gg" place_type="neighbourhood" 
       place_type_id="22" 
       place_url="/United+Kingdom/England/Swindon/West+Leaze" 
       timezone="Europe/London" woeid="39722"/> 
     </places> 
    </results> 
</query> 

我希望能夠在查詢中更改place_type_id。我知道我可以使用正則表達式來隔離信息,但我不確定這是否適用於所有位置,所以我更願意讓API只返回我想要的結果。

回答

2

Flickr的flickr.places.findByLatLon方法(在您的YQL查詢後臺調用)接受accuracy密鑰。

accuracy(可選)

錄製精度的位置信息的水平。世界級別爲1,國家爲〜3,地區〜6,城市〜11,街道〜16。電流範圍是1-16。缺省值是16.

請參閱»Flickr docs for flickr.places.FindByLatLon

把該用是你在where條款,提供accuracy =n一樣簡單。 10左右的值看起來是關於你正在尋找的準確性,但是試着看看什麼是最好的。

select * from flickr.places where 
lat=51.558418 and lon=-1.781985 and api_key=API_KEY_HERE 
and accuracy=10 

除了用於數據源/服務

文檔正由YQL表一般可以通過查看錶描述來獲得。

desc flickr.places 

這提供了大量的信息,通常包括至少一個鏈接到文檔頁面。有關documentationURL項目,請參閱meta部分。

desc flickr.places