2

在我的应用程序中,用户在一个位置并正在寻找她的朋友,这些朋友在她所在的地方 10 英里范围内的任何地方。如何使用 FQL 或图形找到这个?我能看到的唯一方法是运行这样的搜索:https ://graph.facebook.com/search?type=checkin然后运行结果以找出 10 英里内的位置。有没有更好的方法呢?

谢谢你的帮助!

多尔斯

4

2 回答 2

2

来自http://developers.facebook.com/docs/reference/fql/location_post/

它说

一个 FQL 表,它返回具有与其关联的位置并且至少满足以下条件之一的帖子:

  • 你在帖子中被标记
  • 一位朋友在帖子中被标记
  • 您撰写了帖子
  • 一位朋友撰写了这篇文章

注意:此查询可以处理大量数据。为了确保在合理的时间范围内返回可管理的数据量,您应该指定最近的时间戳以缩小结果范围。

给定位置 10,000 米内的回帖:

SELECT id, page_id
FROM location_post
WHERE distance(latitude, longitude, '37.86564', '-122.25061') < 10000
于 2012-06-05T21:42:45.577 回答
2

尽管最初的答案确实对我有用,但它很快就变得不充分了。现在,在把我的头撞到墙上之后,它终于打破了(不是我的头——墙)。这里还有两种更好的方法可以找到我需要的东西:

这是为了找到签到:

SELECT checkin_id, coords, tagged_uids, page_id FROM checkin WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) or author_uid=me()) and coords.latitude<'45.0' and coords.latitude>'29' and coords.longitude>'-175' 和 coords.longitude<'-5';

这是查找所有位置信息:

SELECT id, page_id FROM location_post WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) or author_uid=me()) and coords.latitude<'45.0' and coords.latitude>'29' and coords.longitude> '-175' 和 coords.longitude<'-5'

于 2012-10-14T16:34:22.030 回答