我正在尝试确保文本搜索的结果仅为英国或爱尔兰。我的地点 REST 请求如下所示:
http://where.yahooapis.com/v1/places.q('Belfast')?format=json&appid=MyAppIdGoesHere
URL 是否有另一个参数可以指定国家或结果必须在其中?
我正在尝试确保文本搜索的结果仅为英国或爱尔兰。我的地点 REST 请求如下所示:
http://where.yahooapis.com/v1/places.q('Belfast')?format=json&appid=MyAppIdGoesHere
URL 是否有另一个参数可以指定国家或结果必须在其中?
我不相信有办法在 GeoPlanet Web 服务调用中添加这种特殊性。支持Filters,包括$and
允许您将两个过滤器组合在一起的过滤器,但看起来并不存在可以直接满足您的请求的组合。
作为替代方案,您可以进行 API 调用,然后过滤结果以仅将这些结果保留在匹配的国家/地区。
例如,以下是搜索“贝尔法斯特”的部分结果。检索这些结果后,您可以只保留 country=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>
这可以通过使用$and
运算符作为过滤器来实现。请注意,$and
运算符可以组合两个不同的过滤器,在您的情况下,您希望在指定地点(英国或爱尔兰)内进行文本搜索。为此,您可以使用.woeid
和.q
过滤器,如下所示:
http://where.yahooapis.com/v1/places$and(.woeid(23424975),.q('Belfast'))?format=json&appid=YourAppIdGoesHere
其中,本例中,数值为UK23424975
的woeid。