1

我一直在尝试根据位置过滤建议,但没有成功。我想显示国家的所有地点、城市、城镇、村庄:印度

我应该对以下代码进行哪些更改?

<script type="text/javascript">
$("#myinput")
  .suggest({
    "key": "my key",
  filter: '(any type:/location/location )'

  })
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id + " (" + data['n:type'].name + ")");
});
      </script>
4

2 回答 2

1

使用搜索过滤器执行此操作的方法是使用part_of Metaschema 谓词,如下所示:

<script type="text/javascript">
$("#myinput")
  .suggest({
    "key": "my key",
  filter: '(all type:/location/location part_of:/m/03rk0)'

  })
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id + " (" + data['n:type'].name + ")");
});
</script>

Metaschemapart_of谓词是可传递的,这意味着它匹配part_of印度 (/m/03rk0) 或印度等part_of位置的Freebase 主题。part_of

于 2013-04-04T21:59:42.143 回答
1

Shawn 的方法适用于正确设置了包含属性的主题,但我不确定覆盖范围有多好。我怀疑简单的地理数据(纬度/经度)覆盖范围更好。如果您只想过滤与印度质心的距离,您可以执行以下操作:

filter=(all type:/location/location (within radius:500km+lon:82.7948 lat:21.7866))

https://www.googleapis.com/freebase/v1/search?indent=true&filter=%28all+type%3A/location/location+%28within+radius%3A500km+lon%3A82.7948+lat%3A21.7866%29 %29&输出=%28地理编码%29

请注意,这是非常粗略的记录,我不确定这是否意味着它是全新的并且文档尚未完成或已弃用并且即将消失。

于 2013-04-04T22:51:25.470 回答