2013-03-24 54 views
0

我試圖確保文本搜索的結果只有英國或愛爾蘭。我的地方REST請求如下所示:Yahoo GeoPlanet - 查找指定國家或地方的地方

http://where.yahooapis.com/v1/places.q('Belfast')?format=json&appid=MyAppIdGoesHere 

有沒有我可以指定國家或WOEID結果必須在URL的另一個參數?

回答

1

我不認爲有一種方法可以在GeoPlanet Web服務調用中添加該特性。支持Filters,其中包括$and過濾器,它允許您將兩個過濾器組合在一起,但看起來不存在可以直接滿足您的請求的組合。

作爲替代方案,您可以調用API,然後過濾結果以僅在匹配的國家/地區中保留這些結果。

例如,以下是搜索「貝爾法斯特」的結果的一部分。檢索這些結果後,你可以只保留那些國家GB =地方:

<place xmlns="http://where.yahooapis.com/v1/schema.rng" 
    xml:lang="en-GB" yahoo:uri="http://where.yahooapis.com/v1/place/44544"> 
    <woeid>44544</woeid> 
    <placeTypeName code="7">Town</placeTypeName> 
    <name>Belfast</name> 
    <country code="GB" type="Country" woeid="23424975">United Kingdom</country> 
    <admin1 code="GB-NIR" type="Country" woeid="20070563">Northern Ireland</admin1> 
    <admin2 code="GB-BFS" type="County" woeid="20071112">Belfast</admin2> 
    <admin3 code="" type="Local Administrative Area" woeid="20078326">Belfast</admin3> 
    <locality1 type="Town" woeid="44544">Belfast</locality1> 
</place> 
<place xmlns="http://where.yahooapis.com/v1/schema.rng" 
    xml:lang="en-GB" yahoo:uri="http://where.yahooapis.com/v1/place/2361609"> 
    <woeid>2361609</woeid> 
    <placeTypeName code="7">Town</placeTypeName> 
    <name>Belfast</name> 
    <country code="US" type="Country" woeid="23424977">United States</country> 
    <admin1 code="US-ME" type="State" woeid="2347578">Maine</admin1> 
    <admin2 code="" type="County" woeid="12588673">Waldo</admin2> 
    <admin3/> 
    <locality1 type="Town" woeid="2361609">Belfast</locality1> 
</place> 
<place xmlns="http://where.yahooapis.com/v1/schema.rng" 
    xml:lang="en-GB" yahoo:uri="http://where.yahooapis.com/v1/place/2348154"> 
    <woeid>2348154</woeid> 
    <placeTypeName code="7">Town</placeTypeName> 
    <name>Belfast</name> 
    <country code="NZ" type="Country" woeid="23424916">New Zealand</country> 
    <admin1 code="NZ-CAN" type="Region" woeid="15021751">Canterbury</admin1> 
    <admin2 code="" type="County" woeid="55875854">Christchurch City</admin2> 
    <admin3/> 
    <locality1 type="Town" woeid="2348154">Belfast</locality1> 
</place> 
<place xmlns="http://where.yahooapis.com/v1/schema.rng" 
    xml:lang="en-GB" yahoo:uri="http://where.yahooapis.com/v1/place/2361600"> 
    <woeid>2361600</woeid> 
    <placeTypeName code="7">Town</placeTypeName> 
    <name>Belfast</name> 
    <country code="US" type="Country" woeid="23424977">United States</country> 
    <admin1 code="US-NY" type="State" woeid="2347591">New York</admin1> 
    <admin2 code="" type="County" woeid="12589313">Allegany</admin2> 
    <admin3/> 
    <locality1 type="Town" woeid="2361600">Belfast</locality1> 
</place> 
0

這可以通過使用$and運營商作爲過濾器成爲可能。請注意,$and運營商可以結合使用兩種不同的過濾器,在您的情況下,您希望在指定的地方(英國或愛爾蘭)進行文本搜索。對於您可以使用.woeid.q過濾器,像這樣:

http://where.yahooapis.com/v1/places$and(.woeid(23424975),.q('Belfast'))?format=json&appid=YourAppIdGoesHere 

,其中,在這個例子中,數值23424975是英國WOEID

相關問題