Как найти прошлые проверки друга рядом с локацией?
В моем приложении пользователь находится в местоположении и ищет своих друзей, которые были где-то в 10 милях от того места, где она находится. Как мне найти это с FQL или графиком? Единственный способ, который я вижу, - это выполнить поиск следующим образом: https://graph.facebook.com/search?type=checkin а затем просмотреть результаты, чтобы выяснить, какое местоположение находилось в пределах 10 миль. Есть ли лучший способ для этого?
Спасибо за вашу помощь!
Doles
2 ответа
Хотя первоначальный ответ сработал для меня как часть моей цели, он быстро стал неадекватным. Теперь, после того, как я ударился головой о стену, она наконец сломалась (не моя голова - стена). Вот еще два ЛУЧШИХ способа, чтобы РАБОТАТЬ, чтобы найти то, что мне нужно:
Это найти только проверки:
ВЫБЕРИТЕ checkin_id, ords, tagged_uids, page_id ОТ РЕГИСТРАЦИИ ГДЕ (author_uid IN (ВЫБЕРИТЕ uid2 ОТ ДРУГОГО ГДЕ uid1 = me()) или author_uid=me()) и ordins.latitude<'45.0 'и ordins.latitude>'29' и ordins.longitude>'-175' и ordins.longitude<'- 5';
Это чтобы найти все сообщения о местоположении:
SELECT id, page_id FROM location_post WHERE (author_uid IN (SELECT uid2 ОТ друга WHERE uid1 = me()) или author_uid=me()) и ordins.latitude<'45.0 'и ordins.latitude>'29' и ordins.longitude> '-175' и координаты. Долгота<'- 5'
От http://developers.facebook.com/docs/reference/fql/location_post/
Это говорит
Таблица FQL, которая возвращает сообщения, с которыми связаны местоположения и которые удовлетворяют хотя бы одному из следующих условий:
- вы были отмечены в посте
- друг был отмечен в сообщении
- Вы написали пост
- друг создал пост
Примечание. Этот запрос может обрабатывать большое количество данных. Чтобы гарантировать, что управляемый объем данных будет возвращен в разумные сроки, вы должны указать недавнюю временную метку, чтобы сузить результаты.
Верните сообщения в пределах 10000 метров от заданного места:
SELECT id, page_id FROM location_post WHERE distance(latitude, longitude, '37.86564', '-122.25061') < 10000